ERA Interim, how to handle total precipitation
First of all, these netCDF files follow the CF Metadata Conventions, which describe the use of scale_factor and add_offset in section 8.1 Packed data of the conventions description.  In short, you're applying them correctly:


  If both attributes are present, the data are scaled before the offset is added.


However, I think that you've selected the wrong fields for your purpose.  The total precipitation variable is an accumulation since the start of the re-forecast, and you've selected a monthly mean of accumulations over the first 3 hours of the 00Z re-forecasts and the same thing from the 12Z re-forecasts.  This means that you're missing the accumulated precipitation from hours 3 to 12 of the re-forecasts, so your annual mean estimates might only be 1/4 of any ballpark values you're expecting.  I suspect that you need to choose step=12 rather than step=3, as described in the ERA FAQ.

Also note, I think the comment in that FAQ about the monthly mean from daily mean data availability being "planned" but "not yet implemented" is out of date and that may be the better route to calculate the annual means (see also section 3 of Berrisford et al, 2011).