Not sure how much performance it's really consuming, but really the round_decimal function need only be called on products or quotients. Additive functions shouldn't matter, and neither should we need to call it for comparisons, if we are able to assume it's already been called when needed.