Trainz actually has pretty accurate core physics and all the things you mention are fixable/possible. The problem is that most content creators either don't understand how to configure the enginespec files properly, or just can't be bothered and use generic enginespecs. 99% of the problem with a lack of accurate physics in Trainz lies at the doors of the content creators.