>всё это создает большой оверхед, абсолютно не нужный на системах, имеющих свой api.Вы исходники Windows видели? Я когда-то смотрел именно те части, которые занимаются отрисовкой. Огромная часть кода - не поддерживаемый код из далеких времен Windows 3.11, другая - наспех сколоченные обращения к 2D графическим функциям ядра.
А теперь по порядку. Winapi как такового не существует - это несколько dll, входящих в поставку винды и экспортирующих разные функции. Проблема в том, что с далеких времен Windows NT 3.x эти функции не претерпели изменений, за исключением нескольких нюансов. Изменение в winapi как оказалось вносить нежелательно, т.к. старые программы откажутся работать под новыми виндами, что мы и наблюдаем регулярно. Поэтому MS выдумала сначала MFC - это уже не winapi, это как раз "оверхед, абсолютно не нужный на системах, имеющих свой api". Но проблема оказалась не решенной и изменения вносить опять таки нельзя, можно только расширять существующую функциональность. От MFC отказались в пользу COM, те же dll, только с уникальным номером. И снова "новые технологии", и снова в бой - .Net, WinForms, библиотеки классов. То есть на каждый новый чих теперь создается новая Framework, а старая программа обязана требовать старый.
>кроссплатформенный фреймворк должен быть тонкой абстракцией или даже набором макросов для существующего api
А теперь вопрос, какой такой WinApi используют любые относительно новые Win приложения? И ежу понятно winapi - старый как говно мамонта, свой предел исчерпал ещё в далеком 2000 году с выходом Windows 2000.
Огромное преимущество Qt в том, что троллтехи без фанатизма отобрали те части винды, которые можно и нужно использовать, все, что необходимо было реализовать самим - реализовали сами.