I do not know how much previous versions but tested in version 1.2.19 of Angular and worked without problems.
See code below:
<!DOCTYPE html>
<html ng-app="ctrlhierarquicos">
<head>
<meta charset="utf-8" />
<title>AngularJS Dois Controladores Posicionados Hierárquicamente</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script><script>varapp=angular.module('ctrlhierarquicos',[]);app.controller('subCCtrl',function($scope){$scope.hideThisBox=false;$scope.update=function(label){$scope.hideThisBox=(label=='Hide');//alert($scope.hideThisBox);}$scope.cStuff='cStuffishere!';});app.controller('subACtrl',function($scope){$scope.aStuff='aStuffishere!';});app.controller('subBCtrl',function($scope){$scope.bStuff='bStuffishere!';});</script></head><bodyng-controller="subCCtrl">
<div>
<div class="row">
<div class="span6">
<a href="#" ng-click='update("Show")'>Show</a>
<br />
<a href="#" ng-click='update("Hide")'>Hide</a>
<br />
</div>
</div>
<hr />
<div ng-controller="subACtrl">
Do stuff that uses subACtrl or subCCtrl<br />
{{ aStuff }}<br />
{{ myEchoData}}<br />
{{ cStuff }}
</div>
<div ng-controller="subBCtrl">
Do stuff that uses subBCtrl or subCCtrl<br />
{{ bStuff }}<br />
{{ myEchoData}}<br />
{{ cStuff }}
</div>
<hr />
<br />
<div class="row-fluid">
<div class="span3">
<label>If click on 'Hide', to hide below box: </label>
</div>
<div ng-hide="hideThisBox" class="span6">
<input type="text" ng-model="myEchoData"/>
</div>
</div>
</div>
</body>
</html>