1) Not entirely sure but likely to be around the 10k mark these days. But - it's the end result that counts, not how you got there. If you can make a fantastic scene in 1,000 polys it doesn't matter.
2) SwapBuffers calls can't be made any faster. When you call Window.paint() it has to finish all the pipelined OpenGL drawing that you've set up, which is where a large chunk of the time goes; and then it'll sit in there and wait for the monitor vsync if you've enabled it. This artificially skews the CPU time into paint(). To find out how much time you're really spending doing things, disable vsync, and call Gl.glFinish() before Window.paint() which will finish all the GL commands waiting.
3) Prerendered frames are a lot faster. If you're dealing with, say, only 5-10 models on the screen then skeletal animation will be possible (if rather hard!); but if you're dealing with 100-200 models on the screen the overhead is generally too high to do skeletal animation. The very latest graphics cards might be able to cope by cleverly distributing the load between the CPU and GPU by various means.
Cas
