Thanks for taking the time, I will try read up on the matter and not waste anyones time on it.
Only one question, the "blk*.dat" files are the blockchain right?
If there is no possibility to save space and put more transactions in one block, why can I zip the file to half the size (without even removing any data or changing the layout)?
That's because they're not just the blockchain. They're a LevelDB database that contains the blocks themselves. The zipping is likely leveldb overhead as leveldb moves data between "levels" of access based on access patterns, and copies remain until compaction.