I'm coming across the issue were the round function performs round to even which means 56.5 becomes 56 and 55.5 becomes 56.
Helpful to know that the VBScript Round function does "banker's rounding" with .5 values -- up or down with the root number odds and evens so totals won't be biased up up or down. Back in the day, I remember hearing this referred to by our streamgaging techs as "USGS Rounding". You can see how measurements could be biased over the long run if you always rounded up when you hit the middle value.
I googled around and it turns out Python 2.x round() does not do banker's rounding, but Python 3.x round() does. (Note, Python 3.x probably won't be used by ArcGIS for a good long time, as it is a big change.)
If you really want to avoid it, an approach that should work with positive numbers (pretty consistently, independent of scripting language) would be to add half and integerize: