I understand - breakage should be considered.

Although that is of course wrong isnt it. If the exe isn't on PATH it shouldn't be found. Also if a user changes the path in the passed in environment then the which() search is surprising.