Hi Alex,
As an addition to my other reply.
If you need multiple directives with each of them their own private stuff, create directives with controllers. For validation you don't need to sue $scope at all, but instead interface with ngModelController directly.
have a look at this
directive example I created yesterday. It uses ngModel to get/set the scope variable, without ever touching the scope. The only time it uses scope is to propagate a new 'keyboard' to the view.
I use a $digest in there because there are only directive-local changes, and nothing else can be touched.
Regards
Sander