If you care: Checks for crashed, tunnel, depot and manually stopped were added to OpenTTD explicitly.
It makes no sense to impose these things onto NewGRF, esp. for stuff like "crashed": What sound would you want to play anyway? "running" or "stopped"?
Same holds for tunnels and depots: NewGRF do not have to check whether the vehicle is visible in a viewport either.
If you are looking into vehicle sounds, you might also be interested in viewtopic.php?f=68&t=65649
Edit: Btw., if you want to look into this, the relevant codepart is vehspri.asm:1149... "vehtickproc". To play the "stopped" sound for crashed vehicles instead of the running one, replace the "test byte [edi+veh.vehstatus],3" with "test byte [edi+veh.vehstatus],0x83". To suppress any sounds for depot/tunnel/crashed/... replace some of the jumps to .nomotion with jumps to .nocyclesound