How do I change what wallet Coinbase deposits BTC into when buying? Right now I have to buy into Coinbase and then transfer to another wallet. Can I have Coinbase just send it directly to the wallet and cut out the extra transfer?
Short answer: No. 

Long answer: When you buy on Coinbase, no actual transaction occurs on the blockchain, instead Coinbase just updates their internal database, to show that your account now owns some amount of bitcoin. 

When you make a request for Coinbase to send your bitcoin to an external wallet, then at that point an actual transaction is broadcast to the network.

So there is no way to 'shortcut around some fees' here. Even if your buy order paid straight to an external wallet, the same processes would happen in the backend (coinbase would update your account's balance on their internal ledger, and then broadcast a transaction to the bitcoin network).