They do, and their inefficiency is rendering that highly complex progress bar. How about drawing it pixel by pixel in Java without acceleration APIs and then embedding that via JNI. I'd wager you could get 10 seconds of CPU time and 500 MB of RAM use out of every progress bar ...
Sounds like an example of real-world Speed-Up Loops[1]