There sould be no sound time streching ever done as that makes the sound file lose it's quality.
I will have to ask a question here. What system
do you propose instead of 'on the fly changes'?
Would you prefer the content creator to have to create hundreds of separate sound files? Of course, to do this, you would need to manually make the same changes as Trainz itself makes anyway, since not all recordings are at the exact speed that you want...
No matter what, the sounds will need to be 'stretched' or 'shrunk' in some way to ensure that they play in time with the wheels. Granted, it does loose quality. However, this is the only way to create variable speed/rate sounds (note, we could just turn Trainz into movie clips, with no control, but then you do loose that simulator idea). Of course, there are also limits based off the sound card. Even a high end sound card can only handle so many sounds. Changing the actual file to another file too quickly will effect performance, and sound quality (since you would need to 'overlay' the two sound files more often).
As a note, the sound files used by the Blue Comet are the 2 cylinder sounds from TC3 (which has become a 'base' sound for TC3+ 2 cylinder steam locomotives). Mainly because it's rather difficult to record the Blue Comet now, and since the cost of having the appropriate recordings created is not viable (would require supplying someone with equipment, then having them travel to the US, plus time recording, editing, etc, etc). In reality, the G3s locos are using a Black 5's sound recording (not that it really sounds out of place, these are a decent size loco, with a decent exhaust beat, which is pretty close to most 'mid size' 2 cylinder locos).
Unfortunately, if we wanted to have 'perfect' loco sounds, we would need someone to go out and spend a few days recording the sounds from the loco in question, and try to edit out a separate sound file for each minute change in speed (lets say, a file for every 'rpm' rate from 0 to 150 - thats 150 files for your 'chuff' alone!). This removes some of the need for 'stretching' on the fly, but then adds the need for stretching by the creator instead. If this were the case, it's likely that you would have maybe one low quality sound asset, and that is all. Instead of having a number of good quality sound assets, which have a good (maybe not perfect, but a good) sound in-game.
Granted, my examples above are fairly extreme. However, would this not be required if you removed the 'stretching' for the sound files in Trainz? You still need to cover different speeds, and ensure that they 'transition' between the speeds.