I didn't want to necrobump this but I just have to, since debugging this issue took me so long and is related to this question.
I stumbled with a problem in a project where I have a modular structure with different service providers, depending on each main feature. So, we have modules/Project, modules/Process, etc.
The thing is, I couldn't get the implicit route binding for a Process model working. Even when using explicit route binding via Route::model or Route::bind, it would not 404 when trying to make a request to /api/processes/1 for example. The model that I would get in the controller was an empty one, without even a connection assigned to it.
This only happened with the Process model and I couldn't figure out why. I knew there was a class with the same name in Laravel but I didn't know why it wasn't using my explicit binding.
The answer to this question would be (as I could understand from all of this) that $this->loadRoutesFrom(...) would load the routes as a vendor package would do, without using custom model bindings nor application-specific configuration you may use in the same or other service providers. This would be useful mostly for packages.
As for the second approach, this is best fit for an application to leverage all the features provided by the Route facade.