AngularJSのFilterが2重評価されてる?

最近少しずつAngularJSのドキュメントを読んでいます。Backbone.jsをすっ飛ばしてAngularJSを組み込んでしまおうという目論見です。

今日ちょうどCreating Angular Filtersの項を試していたのですが、どうもAngularJSの Filterが2重評価されているような気がします。

例えば、以下のようにreverse Filterにログ出力を埋め込んだとします。

angular.module('MyReverseModule', []).
  filter('reverse', function() {
    return function(input, uppercase) {
      console.log(uppercase)    // デバッグ用のログ出力

      var out = "";
      for (var i = 0; i < input.length; i++) {
        out = input.charAt(i) + out;
      }
      // conditional based on optional argument
      if (uppercase) {
        out = out.toUpperCase();
      }
      return out;
    }
  });

function Ctrl($scope) {
  $scope.greeting = 'hello';
}

htmlファイルでreverse Filterは2回使われています。

<!doctype html>
<html ng-app="MyReverseModule">
  <head>
    <script src="http://code.angularjs.org/1.0.2/angular.js"></script>
    <script src="script.js"></script>
  </head>
  <body>
    <div ng-controller="Ctrl">
      <input ng-model="greeting" type="greeting"><br>
      No filter: {{greeting}}<br>
      Reverse: {{greeting|reverse}}<br>
      Reverse + uppercase: {{greeting|reverse:true}}<br>
    </div>
  </body>
</html>

従ってコンソールにはundefinedとtrueがそれぞれ1回ずつ出力されると思うのですが、
undefined, true, undefined, trueと何故か2回ずつ表示されます。