When mining for a new block, the miner choses unconfirmed transactions to include in his block (should he find one before another miner).
Why a miner will not choose ALL unconfirmed transactions (until reach the maximum block size)? What are the considerations when choosing transactions (other than the highest fee)?
It is entirely voluntary. Each miner (or pool) can use any criteria they like for deciding which valid unconfirmed transactions they'll add to their block.
I think most miners just use the criteria built in to the bitcoind client. I don't remember the rules on that, but I know I've seen them in the forum. If you do enough searching, I'm sure you'll stumble across them eventually.