MQTT Disconnect packets are never received by any other clients in an MQTT environment. They are received by the MQTT server to denote that client has disconnected. In a Sparkplug environment the only thing a disconnect packet does is tells the MQTT server to NOT deliver an MQTT Will Message on behalf of that client (which in turn tells a client like MQTT Engine that the Edge Node is still online). This is why disconnect packets should never be sent from Edge Nodes.
I’d recommend taking a look at the latest draft of the Sparkplug specification for more details on this: sparkplug_spec.pdf - Google Drive
Note this version of the specification is a work in progress and getting updated every few weeks. But, it is really the same as the originally released v2.2 version of the spec but made to be clearer about the rules around Sparkplug.