Coupling decoupled SIP registrations with user-specific voicemail.conf might make sense, for something like this in your extensions.conf file (not tested):
[howdy-hot-desk]
exten = *43,1,Answer() ; dial *HD for Hot Desk
same = n,VMAuthenticate() ; sets AUTH_MAILBOX on good auth of portable ext.#
same = n,Set(technext=${CUT(CHANNEL,-,1)}) ; turn PJSIP/123-456 into PJSIP/123
same = n,Set(next=${CUT(technext,/,2)}) ; turn PJSIP/123 into 123
same = n,Set(DB(hotdesk/${AUTH_MAILBOX})=${next}) ; store the portable ext.#
same = n,VoiceMailMain(${AUTH_MAILBOX},sa(INBOX)) ; "you have X new messages"
[to-phones]
exten = _XXX,1,Set(dext=${DB(hotdesk/${EXTEN})})
same = n,Dial(${PJSIP_CONTACTS(${dext})})