Are code points assigned from a gapless sequence? That is, is the implementation of codepoint_is_assigned(char) just 'codepoint < SOME_VALUE' and SOME_VALUE increases over time?
Not even close. Code points are organized in blocks, e.g. for mathematical symbols or Ethiopic script. Sometimes new blocks are added, sometimes new characters are added to existing blocks. Where they go is a combination of convenience, history, and planning.