I must be misunderstanding something, or perhaps the default is different and I don't know it? But when I'm solo mining, tons of shares are going to other pools. But it doesn't happen when I'm not solo.. is there some kind of flag I need to use? It's acting like --balance when it's not enabled, only when I'm solo mining though. I would take from this that --balance is the new default, but it's not like it does that if I simply change to work for a pool instead of going solo.
I am so confused, haha.

It's not the default, it's just that a local bitcoind is actually really quite slow compared to a pool. You probably want to enable --failover-only to cope.
I just tried enabling solo mining on my machine and initially it leaked some shares to the backup pools and then again when there was a new block, but then it settles down and mines solo till the next block and repeats the cycle.
This seems like normal behavior to me. This machine uses two GPU's at about 510Mhs.
Sam