We've been outright ignoring master-slave checks if the link ended up without a master since commit 2e228808 ('device: don't remove the device from master if its link has no master').
I have no idea why that was done -- I suppose it was due to platform link change without a master arriving at a wrong time, making us thing the master was removed externally when in reality the link was not enslaved yet. For this reason I'm now consulting priv->is_enslaved.
It's also possible that bulk of logic that has been added into device_recheck_slave_status() since deals with the problematic case already.
Morale: Write better commit messages of future you is going to be upset Fixes: 2e228808 ('device: don't remove the device from master if its link has no master')