What is the worst (due to either prevalence or severity) example of abstraction inversion that you see in programming today?
For those of you who are not familiar with the concept, abstraction inversion is implementing low-level constructs on top of high-level constructs. More precisely, assume you have constructs A and B. B is implemented on top of A, but A is not exposed anywhere. Therefore, if you really need the lower level construct A, you end up implementing A on top of B, when B is implemented in terms of A in the first place. See http://en.wikipedia.org/wiki/Abstraction_inversion.