As part of SERVER-68485, we stopped sending the shard version in split and merge commands and instead checked the preconditions of the commands outside of the shard versioning protocol (similar to what is done in move chunks). However, if the filtering information is stale, the StaleConfigInfo will contain ShardVersion::IGNORED and the shard will not refresh, even if the shard is actually staler than the router.
One way to solve this would be to add a call to onShardVersionMismatch before the metadata checks in split and merge, similar to what is done in move chunk.