Admin navigation can be managed by a static class. Plugin elements won't be necessary any more then.
Let's say, there is a class called CroogoNav. From our Example plugin's bootstrap, we can do this:
// bootstrap
CroogoNav::add('content', array(
'title' => 'Content'
'link' => '#',
'weight' => 5, // for ordering
'access' => array('admin', 'role1', 'role2'),
'children' => array(),
));
// If we wanted to inject a new link UNDER Content link:
CroogoNav::add('content.children.new_link_alias', array(
'title' => 'Link under Content',
'link' => '#',
'weight' => 10,
'access' => array('admin'),
'children' => array(),
));
Notice the first argument of the method. As long as we maintain a valid dot separated path, we can utilize Set class to do the magic. And can generate an unordered list from the layout when required.