The optimizer more or less assumes statistical independence across columns ("attribute value independence assumption"). If your schema flies in the face of that assumption (e.g. EAV design) then you'll probably always get bad query plans, no matter what.