Yes, it's needed. There's nothing else i could do. If the context is lost, the data is lost. IF the context is actually lost, is another question. If you are sure that it's not lost, don't create a new FrameBuffer instance. However, we already had some problems with that kind of "optimization", so personally, i would live with the time it takes to upload the stuff again and be sure that it runs on different devices and different Android versions.
About the shaders...you are using at least one of them if you are using blitting. I'm not going to make this fully optional ATM, but i'll look into some Config hack to avoid using them altogether, if one doesn't want them.