I looked at mining algorithm and I see that pow is calculated over WHOLE block (sha3). Not block header like in bitcoin, but whole block with transactions. Is that true or am I mistaken?
If that's true this means that ignoring transactions gives a small speed boost in mining. That's not very good for the future...
I skimmed the code, and you may be right.
src/cryptonote_core/miner.cpp:
...
b.nonce = nonce;
crypto::hash h;
get_block_longhash(b, h, height);
if(check_hash(h, local_diff))
{
//we lucky!
...
Could a developer comment on that? Will larger blocks hash slower? If so, what incentives do miners have to include more than the coinbase transaction in their blocks (transaction fees seem negligible at the moment imo)?
The slow hash is not computed on the entire block, directly. There is an intermediate fast hash, just as with other coins. But just as with other coins it is indeed the case that larger blocks are slower. After all you still have to validate the transactions and compute the block hash. That's why there need to be some transaction fees to get miners to include transactions into a block, otherwise they won't. There can also bit a bit of social pressure to do the right thing. For example, with bitcoin there is no real incentive to include the fee-free high-priority transactions, but most of the big pools do it anyway. With this coin there is not currently a transaction priority mechanism so fee-free transactions are not workable, even if they are workable for bitcoin (which is questionable longer term).
EDIT: BTW transaction fees were raised in the last update and may be raised again. They need to be economically significant.