Why is reusing bitcoin private keys frowned upon? So far I've understood that reusing a private key to send out from is not good due to exposing your privacy. 

I know reusing keys are frowned upon, but I never really understood why. Aside from the privacy aspect, what other issues should I factor in due to key reuse?
Each private key is tied to an address.  A private key is used to generate a corresponding public key, and that public key is used to generate an address.  Due to Bitcoin's support of both compressed and uncompressed public key formats, each private key can actually generate two different addresses (however, you should really view these as the same address, since they are just different encodings of the same keypair).

Private key reuse is the same thing as address reuse, and thus comes with all the privacy implications that go along with address reuse.  Someone watching the blockchain will be able to associate your addresses with other addresses, and then be able to use 3rd party data sources to gain insights into how you obtain and spend your money.

The other issue is the potential for future cryptographic vulnerabilities.  When you spend money from an address, you are publicly revealing the public key part of the keypair.  This public key can easily be converted into either its compressed or uncompressed form (depending on which it is), and the other address it generates can now be associated as well.  It also opens up the possibility that someone can attempt to derive the private key from the public key.  While there are no known attacks on the secp256k1 elliptic curve cipher that Bitcoin uses, addresses still provide a level of protection even if a vulnerability is found.  Addresses are generated from cryptographic hashes of the public key (with some checksumming added to prevent typos when spending), and therefore it's impossible to obtain even the public key of the keypair from an address.  Once you spend from that address, and reveal the public key, you no longer care if someone cracks that key.  You won't be using it again.

There is also the case of simplicity.  Addresses are very easy to generate, and we are in no danger of "running out".  I would argue that a system that reuses addresses may find itself being more complicated than a system that simply generates and stores a new one when needed.  Deterministic wallets have made this even more simple, where a single seed value can be used to restore an entire wallet worth of private keys.