With per-screen rendering, the surface property in AbstractEglBackend makes no sense. Every output has its own surface.
Since the surfaceless context extension is mandatory, the EGLSurface property can be removed. AbstractEglBackend::makeCurrent() is called primarily by effects. So, calling eglMakeCurrent() without a draw surface is fine.
The current state of the EGL backends in standalone and nested X11 platforms is still disappointing. It seems like the best course of action is to split the base EglOnXBackend class.