The fastest way to do things is to not do them. What I mean here is that if you know that the state doesn't change between objects then don't change...
Have you tried putting the list of varyings into a struct and simply declare a struct variable in the in/out blocks? I don't recall whether there is...
Is there any screen you can display a texture as large as MAX_TEXTURE_SIZE?
In other words, why do you need that? Even modest hardware with 512MB of...