Ну, во-первых, это разные API. SDL и SFML - это библиотеки, предназначенные для создания игр и, возможно, других приложений. OpenGL - это графический API, а не полный набор библиотек.
Обратите внимание, что SFML в значительной степени использует OpenGL для рендеринга в окно. Фактическое окно само по себе создается с помощью специальных функций платформы. Win32 API используется для окон, а оконная система X11 обычно используется в Linux.
«Классическое окно с графическим интерфейсом» - это в значительной степени специфичные для платформы API. Различия в фоновом коде на самом деле просто определяются целью API. Обратите внимание, что в конце строки Qt / SFML / SDL все переходят к API конкретной платформы. OpenGL даже требует от вас взаимодействия с API конкретной платформы. SFML / SDL / QT, по сути, выполняют работу более низкого уровня за вас.
Я надеюсь, что дал то, что вы ищете, потому что у этого вопроса действительно широкий спектр ответов.