Q:

DRY usage of Common directive used across all views

If I have an angular router of say 10 views, and each view has the same banner is it redundant to have to declare the same directive that wraps the banner and its controller in each view? 

A:

In most cases - yes, it's redundant.  
You just need to create some Angular module and create directive inside this module:
angular.module('angularApplication', [])
       .directive('directiveName', function directiveDefinition() {....});

Then you use "ng-app" attribute for root element of your Angular application + use this directive:
<html ng-app="angularApplication">
    <directiveName></directiveName>
...
</html>

In some rare cases you will need to create multiple directives - but these cases are quite rare (and could be achieved by one directive with different directive attributes).