Number of transactions per block
Nothing is stopping miners from not including transactions in their blocks, in fact it has happened before.


  hashing smaller data will result in greater hashes/s (yes?)


No, the hashes are always the same size, and adding transactions to the block does not make any difference to the difficulty in finding the nounce that validates the block (the speed of hashing remains the same, and the probablity of finding the bock also remains unchanged), hence it makes financial sense for miners to add as many as they can since they earn more transaction fees.

Edit: for more details on the mining process, this thread provides a good summary:


  Simplified mining process 1) Miners select tx from the memory
  pool for inclusion in a new block (the number, method, and criteria is
  up to the miner) 2) Miners construct a merkle tree from the tx in
  step #1 3) Miners create a block header with the merkle tree,
  prior block hash, version, timestamp, and nonce 4) Miner will
  hash the blockheader.  If it is a solution go to step 5. 4a)
  Miner will increment nonce and go to step 4.  If nonce range is
  exhausted go to step 4b 4b) Miner will modify another element in
  blockheader, reset nonce range back to 0 and go to step 4 5)
  Miner has found a block.  They broadcast it to peers.  So
  once a miner finds a block they are done.  All the work for deciding
  tx comes BEFORE solving a block.


So the number and size of transactions has no real impact on the repetitive step #4.

Having said that, it has been claimed that some miners do choose smaller blocks in order to minimise network propagation delays, and hence reduce the chance of their block becoming an orphan.