Adding white (light) to a color doesn't give you more brightness to that color; it will sort of washes it out and provide more overall brightness. Think of the white LED as just turning on all the RGB leds with equal values. More RGB will just blend the blue away not really add to it.
To be true to the color, shouldn't the calculation be done with the highest value not just the current channel value, so in the above, you would use the blue channel value for calculating the red and green? Or is this what you are already doing?
As you want to scale them all the same, otherwise the colors just wash out above 1.0.