I would look at the uv values you are using to render the cube. Also have you dumped the texture out as an image to be sure your texture is ok since...
The main problem is that you will have to rebuild your static object vbos. So now you will need a more intelligent way to group objects at load time...
You have pretty much covered it. When you have dynamic objects you will always need secondary data to link the object to the VBO. A slight variation...
If a model (say .obj) has multiple textures you need to split the model into different triangle sets - one for each texture. You bind a texture then...
Is each object in its own file? It so, you just need to parse a text file that has the filenames. If they are all in one file you need to parse that...
Strictly GLint etc are unique and should always be used - practically their typedefs have been unchanged for a long time and are unlikely to change....
This is most likely because they need some intiallisation code that is not present in the graphics card manufacture's driver. I don't know how common...