Мне кажется, что разводить холивары по поводу является ли нынешний ООП истинным или нет просто бессмысленно, потому что:
1. Нынешний вид ООП рабочий.
2. Тот ООП, который задумывали "отцы-основатели" был не более чем наброском, эскизом. Потом этот эскиз шлифовали ещё многие годы.
3. Принципы ООП не просто так изменились (если они изменились вообще): значит так было нужно, значит нашли более выгодное/адекватное решение.
Что касается c#. Он изначально задумывался как ООП язык, и кодить на нём без этих знаний мягко говоря сложно. В нём заложены все три основных принципа ООП, а эти принципы как раз таки обобщают все пункты, которые были предложены выше. Да и у c# банально основной родительский класс так и называется Object, он (c#) просто от основания построен на классах. Поэтому спорь, не спорь всё равно придём к одному результату: что имеем тем и пользуемся.