Different URL generation in regular and named routes

Obviously I am missed something, but why the way a path is generating
using named routes is a little bit different from using regular url_for?

  1. Parameters from current request did not affect named routes, the way
    it is in the url_for.

  2. only_path=>false by default in named routes. It is true by default
    whe using *_path instead of *_url, by why not to set it true by default
    in *_url and get rid of two practically identical methods?