Hi Justin,
1. From what I've read, CW 3.1 can no longer be obtained, is this true?
This appears to be the case as far as Freescale is concerned.
2. Does the CW 5.x compiler have a CW 3.1 "compatibility mode" or something of the sort that would guarantee similarity between the CW 3.1 and 5.0 produced compiled code?
Not really, but when it detects you trying to load a 3.1 project it offers to display a document that details all the things that you might have to look out for. I usually ignore it and forge ahead with very few (or no) issues. But I don't use CW for serious work.
3. If I must get CW 5.x and there is no guarantee of backwards compatibility, am I facing several days of sorting out compiler errors for previously working code (best guess based on compiled size of the project)?
Anywhere from several minutes to several days, but you could have a lot of this even with the same base version compiler just with plug-in, patches and settings anyway. Depends a lot on the previous programmer(s).
4. Considering every last byte of RAM has been used in the project, should I be concerned about the CW 5.x compiled code fitting on the device?
I would be concerned about this fact anyway. What happens if problems are discovered that need to be fixed or additional features incorporated? I would imagine that with this much RAM usage there would be some buffers or the like (stack?) that could be massaged down. Possibly they are that big "because it was there"
Regards David