Scotrail is branded using a Scottish Government livery and brand, any operator taking on the TOC has to use the same one. I think that's a good idea, just as all London bus operators have to use the same livery.
Having all London bus operators use roughly the same red livery works well because buses form only a small proportion of road traffic in London - so the red theme helps the TfL buses to be immediately recognizable amongst the other traffic (and in particular easily distinguishable from non-TfL coaches etc.).
If, hypothetically, TfL-controlled buses were almost the *only* traffic on London's roads - a situation much more analogous to railways - then there would not only be no point in having a common colour scheme, but doing so would just make the roads look dull and monotonous - every vehicle would be red!
I personally like seeing trains in different operators' colours, and I'd hate to see all trains the same colour - it would so far as I can see serve no purpose, and also make the railways look somewhat boring. Prominent operator-specific colours are also marginally helpful on occasions - if, say, I know that my train is a Southern one, then I can easily ignore the FCC or SWT-coloured trains in the station.
On the other hand, universal markers - like the yellow stripe for first class -
are useful. I'd be very happy to see those brought back and enforced across operators.
After all, you wouldn't insist on ASDA, Sainsburys and Tesco all adopting the same colour scheme just because they are all supermarkets, would you!