The originally agreement was that the term slave would be removed from the UI, but left in the APIs to avoid breaking compatibility both for plugins and customer tools/scripts. The problem is that line of where the UI stops and the API begins is a somewhat fluid when your users are engineers.
I understand that filenames and urls are effectively part of the API and so changing them is problematic and could be considered out of scope. But filenames and urls are also part of the end-user experience (the UI) for every Jenkins user. And the files and urls related to adding an agent are some of the first and most commonly used.
It's not so easy, because many automation flows download slave.jar, windows-slave.exe and other such files from Jenkins. We can only add new endpoints and fix UIs, but the previous entries must be retained