I agree with Lumooja, it shouldn't be that hard to use multithreading to make a simple animated "turning a circle around" loading screen..
the best way would be to manually process and load a scene, then you can do whatever you want.. and coupled with clever design like Lumooja suggested (loading after texts fades in) one can hide the loading process altogether.. you can pre-load all the common assets during logos/start up sequences or what have you in small batches, then when you do new/load game from the main menu only load the rest..
If you first fade in to a interesting static image or some block of text then do some heavy loading, the user wont even notice while he's busy reading or taking a closer look.
Progress bars aren't really needed if you have load times less than 10secs, they are more suited for longer load times so you can more easily judge if you have time to grab another slice of pizza from the kitchen
Also for long loading times, some kind of animation is crucial to assure the user the app is running and hasn't hanged.. Even if you have progress bars if they don't update for a while, it might make the user wondering.. so again multi-threading is probably needed here. Because even if you update after every file load, and the files are small and quick to load, there might be a lag due to the file being on external hdd which is put to sleep, dvd disc that has to spin-up, sent over network etc..
I have currently a very long loading time but i just display a static image and play a sound recording of me counting "one model sitting in the scene, two models sitting in the scene...", it works and gets around most of the issues .. yeah i'm lazy like that