Ah yes @Dukuo, thanks for bringing up this question.
Well, for many reasons. I would say that the most obvious one be caching. Directives, as far as I know, don’t support such sophisticated caching as Shield does. Furthermore, some prefer to keep the schema “clean". What I mean with this is that you keep the schema solely explaining the model, not the logic as well.
If you have some time, I would love to hear what directives on the other hand offer. I haven’t done much research in that way because I don’t really like mixing the two of them together but I am open to new ideas.