Here is an image illustrating the incorrectness:
Despite being almost perfectly flat, squashed-spheres have wild lighting applied to them.
I am guessing that the normal is calculated as the normalized position along the squashed sphere, which is incorrect – it results in vectors which point out from the center much more than they should.
The normal should instead be calculated as that from the unsquashed sphere, and then squashed the appropriate amount.
normal = normalize(position) // What is probably is like
normal = normalize(normalize(position / scale) * scale) // What it probably should be like
This is not a recent bug, it’s just something that never clicked to me.