SubID is "mandatory" for multiple subscriptions only :
"If a single entity is subscribed to a node multiple times, the service SHOULD notate the event notification so that the entity can determine which subscription identifier(s) generated this event".
In the case of unique subscription, the SubID is implicit.
So Ejabberd shouldn't send SubID for publication and deletion messages when the user is subscribe only once to the node. This way, those messages can be sent using multicast (which requires to have an identical stanza for all the recipients).