In my opinion, it's about dependancy.  

If a user depends on a different version of PhantomJS then what is installed in the bin, then that user will be expecting that specific path to be used.  The user probably has a specific reason for using the path argument as it is optional.

For example, what happens if the user misspells the path and the bin version is used.  It could fail and the time the user spends debugging could result in time lost.  By just failing the program and telling the user that the path is incorrect, they will get immediate feedback.  Resulting is no time lost for misspelling the path to PhantomJS.