You've described the exact problem. Sub pixel rendering exploits the fact that most display pixels aren't discrete logical squares.
It seems like defining px to be perceptual is one of those compatibility hacks that probably helped a ton back in the day, but we have perceptual units and now we're stuck with that baggage.
I don't have much of an opinion on this (I use em) but it has taken me by surprise a few times.
Yes. But those glowing lights aren't little squares in a neat horizontal and vertical rows.
The square pixel is useful in logical contexts - like an SVG or bitmap graphic. But when it is turned into a physical display, those pixels aren't displayed as little squares. The RGB elements are arranged in dozens of different formations depending on the display technology.