`brew --prefix package` returns the latest installable package, and not the version you actually have installed.
Also things like: https://github.com/Homebrew/brew/issues/2402
It tries to do too much and ends up being a never ending surprise from hell.
(The solution to the Bash issue is to hard code the path for chsh, etc.)
I have had apt refuse to install npm because of a full /boot partition (Imagine if Homebrew refused to run because I couldn't update OS X)
I think it's ironic you say homebrew is the one trying to do too much...
Meanwhile, apt packages are incredibly stable, install the same way every time, and are exactly what you'd run on the server anyway. You can use PPAs if you need bleeding edge versions.
I have no idea how you'd compare Vagrant to... homebrew. Sometimes it's convenient to have software on my actual machine, not a VM...