Config/app.php should not have environment dependent configurations.
Its just a suggestion. I recently came across problem on git while I added some ServiceProviders to providers array in app.php config file. As this file has to be changed when ever a new package is installed (to register providers and aliases) it may not have configurations like url, debug mode, encrypt key etc which are different on local, staging and live site.
I avoided git conflicts by adding some extra keys to .env file and using those in the app.php file but it would be nice if Laravel has a separate configuration file for environment dependent values.
That's what the .env file is for - for storing environment dependent values. You then reference those environment specific values using the env() helper function.
Anything that can change environment to environment should be stored and accessed in this way.
The providers and aliases are part of the app configuration, though. The only other value that would really change in the app config is the url, which is only really used for artisan commands, and can be set using the env() helper.
The information is quite clear in the documentation, so it shouldn't be confusing to newcomers, assuming the documentation is read. If it's not clear, however, perhaps suggest a PR to the docs or discuss it with the community to address any concerns.
Comments throughout Laravel's source and the documentation are amongst the best I've seen for most of the frameworks I've looked at, and the community itself is very good at helping each other out when questions arise that aren't covered by the docs, or aren't clear.
The "url" config option is used for Artisan commands when displaying the app link. That is not anything to do with the frontend base url (Apache/Nginx etc).