Я пробовал проанализировать этот вопрос в статье "Объектно-ориентированное программирование: прояснение принципов?" -viewtopic.php?p=48578#p48578,
но там скорее постановка проблем и отход от стереотипов, до основательного анализа ещё работать и работать.