Update:
I wrote a C++ program to filter out all of the CCs except the mod wheel from a midi file and ran the original file through it. The original file contained several CC 93s (chorus depth in GM). After running the file through my nifty little filter I no longer have a problem with the distortion amount getting reset on my Sylenth. Sylenth is particularly susceptible to this kind of issue because it doesn't use the GM spec for its CC assignments (every control is mapped to a CC). I suspect that you would never see the problem if you used a keyboard or soft synth that ignores CCs or responds in a GM compatible way. I always wondered what was going on, now I know.
However, it seems to me that it's a relatively serious bug in Sonar that deleting all CCs in the Event View doesn't really delete all the CCs, some of them still hang around (maybe only the ones that reset the values to zero, maybe it detects that the track set something to a value other than zero then automatically zeroes it when the transport starts, I dunno). If it's resetting controllers that get changed automatically, it should also detect when the controllers get deleted and remove the reset. It might be nice to have a dialog that would allow you to disable things it does automatically on a track by track basis, ideally it would also allow you to tell Sonar to delete the reset entirely.
I don't know what Sonar is doing in the bowels of the MIDI editing code but I don't think it should be remembering stuff you told it to forget about and then not telling you about it.
Anyway, now I have a program I can use to clean out midi files before importing them into Sonar.
EDIT: It's not a bug, it's a feature... see below.