Для полноты картины - вот скриншот как тот же код ведет себя на OSX - QGLWidget ничем не перекрыть, хотя красный получает raise, можно только др окном - но не виджетом того же окна.
И в гугле ничего не видно по этому поводу
Edit: да, еще - в измененном примере можно перебросить комменты одной строки - тогда вместо QGLWidget будет обычный, и поведение становится корректным/ожидаемым