Since WordPress 2.3.0, the redirect_guess_404_permalink() function has existed to attempt guessing the desired URL based on the query variables available. This is especially useful when a post’s parent changes (for hierarchical post types), or a post’s slug is changed.
Guessing a URL to redirect 404 requests is fine for the majority of WordPress sites, but site owners, developers, and plugin authors may want more fine grained control over the guessing logic.
This is a long-standing issue, as the original ticket was opened 9 years ago. So long, WordPress 5.5 will add the ability to manage that feature properly.