Indeed. At present, it is cheaper to buy SPG points (with the bonus that is running) and transfer them to BA - works out at 1.3p per BA mile (assuming you transfer 20k and get the 5k bonus) v 1.7p via BA. You can also buy more via SPG. The only snag is that you have to have had an SPG card for 30 buys before you can buy points so it may be too late to jump in now.
CW pricing jumps around a lot. It is not unknown for CW tickets to be cheaper that WT+ in a sale. In general, though, you'll be better off buying WT+ and upgrading. However, remember that a cash ticket can be for any day you want whilst upgrades with miles are restricted.
You are also better off 'buying' miles via Tesco. Yesterday, for example, you could have bought a £48 mobile phone with 2,000 bonus Tesco points (4,800 miles). You could have resold the phone to cex.co.uk for £33 so 4,800 miles would have cost you £15. That code now seems to have expired but similar offers have been coming thick and fast from Tesco recently.