Something important to remember is that unlike MS Windows, "upgrade" doesn't necessarily mean the same as "replace". In other words, when you upgrade, you'll simply add the new version of GCC to your system, and the "generic" link will be altered, but unless you explicitly remove it yourself, your old version will remain. That means that if you still need it, you'll be able to use your old version, although you might have to use a different command to access it. It may be "gcc-2.96" instead of simply "gcc", because gcc is simply a link, which will likely point towards your new version, aka, gcc-4.0 (which you could type as well, but gcc is easier for lazy people like myself
)
The benefit of this is that you still retain your old version for programs that may need it, yet you can compile newer programs as well. The only practical downside might be the extra space on your hard drive, but in the age of multi-gig drives, the couple megs of space (including docs) that an older version may use isn't worth worrying about. This applies to many parts of the system, including system libraries, which has the benefit of allowing you to run crusty old programs alongside the newest, or experiment with cutting edge software, while retaining the ability to do your work with more stable, reliable programs.
Most certainly update gcc, as the version you're currently using is not only quite old, but also contains a number of major bugs and problems. However, don't delete or remove the older version, as you might need it to (re)compile some of the programs that that version of SuSE included in that version (this tends to be especially important in regard to the kernel and kernel modules/drivers), should you need to do so in the future.
Hope this helps.