Regarding Mr_Maniac's point 2, there seems to be some issue with the timer code for GCC in timer.cpp. I am building FS2 using Mingw (i.e. GCC) and I have noticed that when the executable runs, it is initially very fast. At some point though, after two or three missions, it becomes slow, really slow. After some investigation and tweaking with the timer code, I found out that, in timer.cpp, timer_get_fixed_seconds () has a slight error in the assembly code for GCC.
If I change the line that reads (near line 230)
"shld $16,%%edx,%%eax;" // Keep 32+11 bits
to
"shld $16,%%eax,%%edx;" // Keep 32+11 bits
everything works fine. No speedups, no slowdowns. Not sure if this can fix your problem #2 Mr_Maniac, but it may be worth a try, as it is a very simple change.