@subpackage cannot be unset when rendering URIs
The UriBuilder's behavior is that if no controller, package, subpackage etc. are specified to the uriFor() method, the current controller, package etc. are used.
That turns out to become a problem if one would like to link from a controller within a subpackage to a controller without a subpackage namespace part: specifying an empty subpackage is recognized as "not specified" and results in use of the current subpackage.
A possible fix is to only use the current subpackage if neither a package nor a subpackage have been specified. If only a package but no subpackage is passed to uriFor(), an empty subpackage key should be assumed.