This question comes up in internal discussion from time to time.
The reason is, the semantics of directory copy is not well defined. It largely depends on what you need. Here are some questions you need to answer before you go implement one:
1. Do you copy ACL?
2. Do you copy streams (NTFS supports multiple streams)?
3. What do you do if you encounter a reparse point?
4. What do you do with hard link?
5. What do you do on error?
There are probably many other questions need to be answered.
In the end, It is very difficult to implement one copy that fits everyone.