The only thing I can think of is Patterns. Its something that is complex and hard enough that most OO programmers need to study it well before understanding when and where to use specific patterns. Any other ideas out there??
"An idealist is one who, on noticing that a rose smells better than a cabbage, concludes that it will also make better soup." - H.L. Mencken