What happens with ng-repeat is that the transcluded scope (00A below) becomes a child of the ng-repeat scope (009), rather than a child of the controller scope (003).
(Right-click on the image and open it in a new tab to see it better.)
Since there is no dashed line from isolate scope 006 to controller scope 003, transcluded scope 00A can't find outer
using prototypal inheritance chaining/lookup.
(Scopes 004 and 005 are created by the working
directive. Transcluded scope 005 can find outer
using prototypal inheritance.)