Re: But public money...
> It would have made sense to keep infra-structure separate but to allow multiple operating companies to run competing services over them.
That would have been the worst of all worlds. Railways have a certain limited capacity, and there are only so many passengers. Typically, an (open) ticket is valid on any train on the route. If you had several companies operating the route, that ticket would only be valid on every nth train. That would have been dreadful for passengers.
> It would have made even more sense to have done the latter but split the infra-structure into regional companies so as to concentrate each management's attention on getting its own bit right.
Such fragmentation would have lead to horrendous interface problems at the boundaries. Infrastructure progress (new signalling systems, increasing speeds on long distance lines) would have been inhibited. Cross-"border" tickets would have become much dearer.