The technology is fine, it's just generally not correctly implemented.
If you think about it, a typical display looks like this:
There's basically no human discernable difference between drawing a white pixel surrounded by black pixels by doing activating the above pattern with sequence 000fff000 meaning the middle RGB is activated vs. doing 008ffe000 which simply shifts the activation pattern one subpixel to the left. I lied, though. There's usually a slight black margin around each full RGB triplet, but I haven't found it to matter in practice.
Anyway, against this background subpixel rendering makes perfect sense. Where the implementations usually go wrong is that people are too lazy to care to get gamma correction and (in case of Linux) LCD bitmap filtering just right. When partially covered pixels are encountered, the OVER operator should be evaluated in linear light or coloration of the end result is likely. The LCD filtering should be simple 3-subpixel moving average so that every subpixel gets equal excitation and the result is colorless.
I hope that people start to use linear light color spaces such as scRGB(16), or sRGB texture and framebuffer support to allow linear blending to occur in linear light.