Please provide a snippet of the part of the specification which we violate
<blockquote>[...] if the contact has no available resources when the subscription request is received by the contact's server, then the contact's server MUST keep a record of the complete presence stanza comprising the subscription request, including any extended content contained therein (see Section 8.4 of [XMPP‑CORE]), and then deliver the request when the contact next has an available resource. </blockquote>
Prosody keeps only the JID here.
Please provide a link to the specification: