My workaround for this problem is to install these tools in a separate venv and calling the binaries with their full path, but for tools like this where the command is built into the program that may be more difficult. It's also a waste of space in some cases, though deduplication tools can help there.
I have my solution and I think many others have their own. In my opinion it's perfectly fine to just state "platforms that don't have the necessary packages in their system package manager aren't supported, use at your own peril" so niche distributions making up the long tail of your users don't end up taking unreasonable amount of support and development time.
As for pip install --user, I sometimes nuke the local repo so wouldn't be a robust solution given my workflow.