Why do we need a genesis block? In bitcoin, a blockchain always starts at the unique genesis block. Beyond that point there can be forks, and only when it is clear which branch will grow fastest (or if it has grown enough), we can know for sure (or almost) if a block will end up in the actual blockchain.

Is it necessary to have a genesis block? I could imagine that without, when bitcoin was launched, miners would just have started mining blocks, and as soon as one was mined, the chain would grow from there. If another miner found another block 0, the blockchain could be extended from there as well just as with any other fork (note that this would be equivalent to having an abstract genesis block that doesn't need to have any properties that can be treated as the parent of any block 0).

Is this just an accidental feature of the initial design of bitcoin, or is there a deep reason for the existence of an eternal genesis block?
I think your misunderstanding is in the assumption that the genesis block must be a block.

There is no need for that.

For all we care the genesis block is just a specific hash that is used as hashPrevBlock to identify block number 1. It doesn't actually need to correspond to an actual block. Modern Bitcoin software doesn't actually treat the genesis as a block at all. It's just a piece of data - and its hash is special.

So, no, there is no need for a genesis block. But there is a need for a genesis something - just to identify what the first real block is.