While .profile and $HOME/bin are quite appropriate for an individual developer, a sysadmin faces a different situation. If the script is intended to for use by all users of the system, the traditional location is /usr/local/bin or maybe even /usr/local/sbin. If the file is required for boot, then /bin or /sbin might be called for. The caveat with .profile is that it's only invoked by an interactive shell.
When I have a script that I only want root to run, I'll usually toss the script in /root/bin unless the system uses / as root's home directory.
I'm not really disagreeing, except with the idea that there is a single best practice for all situations.