The reason for this is that subpage_id's will only ever be assigned once -- during parsing. Having the parser generate the id's avoids worrying about if *Page is being used safely or having to block for a response from another task. The end result of having the Page generate the id's would be functionally equivalent, but would require more overhead that seems unnecessary.