Here's an idea from left field ... yet fed to me by someone whos' rather more in "the know" that most at the National Rail Future conferenece

Bristol Temple Meads, Keynsham, Oldfield Park, Bath, Corsham, Chippenham, Melksham, Trowbridge, Westbury, Dilton Marsh, Warminster, Salisbury, Romsey, Southampton.
* Relieves overcrowding on Cardiff to Portsmouth services.
* Provides (hourly? one wonders!) service each way at Melksham
* Provides a regular local train through Corsham station site
* Good services from Hampshire to Chippenham
* Connections onwards to Swindon
* Good service across Wiltshire Council area
* Direct service from Melksham to Bath and Bristol
On the negative side, it removes the direct train to Swindon. Even with the worst possible connections at Chippenham, though, it would still be a lot faster that the bus from anywhere to the south to Swindon.