leaky abstraction

Etymology
Popularised in 2002 by software engineer.

Noun

 * 1)  An abstraction that undesirably exposes details and limitations of its underlying implementation.