How do I copy the normal axis orientation from a mesh face to an Empty hooked to the face OR a bone parented to the face?
You don't need to separate faces to different objects, but you have to separate them. One way is add EdgeSplit modifier, set angle to 0 and apply it. When you have separete faces, just set Pivot point to "Individual Origins" (it's where you setting Median, 3D cursor, etc.) and Transform Orientation to "Normal". Now if you press [R] for rotation, you can press x,y or z for locking rotation to one axes in global world, but if you press x,y, or z again, the rotation will be around each individual face normal. Hope it will help.