But pages are marked reserved by default. You still have to alloc the bootmem map for the the whole node range, including reserve hot add areas and areas beyond e820-end-of-ram. So all the areas are already reserved, until freed.
Right, it's all very clear now. At some point in the future, I'd like to visit why SPARSEMEM-based hot-add is not always used but it's a separate issue.
The add areas
are marked as RESERVED during boot and then later onlined during add.
That explains the reserve_bootmem_node()