Most of the protocol specs were written retroactively to match functionality that browsers were already using in the wild.