I'm not convinced SPOJ would gain anything from adding too many new "languages". It would probably just create confusion.
I think C++ (g++) is close enough to gnu99. Just remember about the few differences (void* casts, no default type in declarations, having to "#include" etc.; it's good style anyway, IMO).
As for usability of "C99 strict" language in SPOJ -- some contest-setters believe it really valuable. I also think so: I've seen solutions of some students who didn't even know how to get rid of some really not-silly warnings, but didn't bother as the program worked. It might be ok in some contests, but not on a C learning course.