Yes that works. In my case - I hate to edit any existing third party code bases - or it bites me later when I upgrade.
For now - I simply do my own dead reference clean up externally when doing the deletes. Really, that would be the same as just doing a disconnect - but for other reasons (not worth going into detail here) - I prefer deleting and not having to know all of the connection points. My solution ensures that the dead references aren’t around later.
I mainly wanted to get it out into the devel community - get smart eyeballs on it - and hope that it gets addresses in a future release.
It will likely be a fairly straightforward fix - as you show.