Why can't the ARB enforce FBOs to allow mixed formats, dimensions and components - like the EXT_Mixed_FrameBuffer_Formats extension on nVidia Geforce 8. Currently, the ARB_FrameBuffer_Object does not enforce the hw vendors to support mixed formats. ATI Radeon 4850, for example, does not support a FBO with both 16-bit float and 8-bit texture attachments.
Without this unified approach, we are no better off with ARB_FBO than the older EXT_FBO since we still have a convoluted and fragmented code path with limited choices for FBO targets (aside from the integration of Mipmap generate,blit and multisample).
I'd like the next release of GL (GL 3.2) to enforce this requiement for next generation h/w such as Geforce 8 onwards. Legacy h/w is really going to be running GL 3.x native apps anyway.