That question should be posted on Django user, where people discuss on how to use django to build web site and web application. This list is for improving djnago.
Anyway.
The first argument of the url tag is the name of the URL you want. The most common way to specify an URL name is with the format "{app}:{url}". This let you have each app have an home view without conflict and you can still can fetch the URL from the right app.
The name of an app is always stored in a variable app_name. And URL won't alter the URL name you gave it. So if you ask for 'app_name:posts', you will get the URL named posts from the app with a variable app_name set to the value app_name.
Maybe you are thinking of relative URL name resolving, which would be an improvement to Django. What I mean is the url tag would recognize a special value as meaning "fetch that view from the current app".
In my opinion, either a blank app name or 'self' would be a better choice for that special value. And it would cause a lot of issue. It might break existing Django app, which is bad. It will make finding all references if an URL in you code harder as you need to search for both the absolute and the relative name version.
I hope this answer your questions and thanks for asking