I added an octohedron object to my scene using the Add > mesh > math function > regular solid.
At this stage, if I set the transform orientation to "Normal", I can move and rotate the object along its vertex normals.
After some manipulation, including adding an array modifier and applying it, deleting some of the new copies of the object, joining together some others, etc, selecting the octahedron and setting the transform orientation to Normal only lets me move it along (what appears to be) a face normal, and some other weird intermediate normals.
Here's a picture for reference, showing the octahedron after all the manipulation.
The red one (x?) is the face normal. The green (y?) is on an edge, and the blue (z?) is somewhere in between...
Here's a fresh octahedron:
All the normals are exactly where I want them. Why does this happen? How do I change it back? I've tried reading up on normals and I haven't been able to find anything.
Edit: this happens in edit mode, by the way.
Edit2: might be relevant, but one of the "manipulations" was creating an empty and having it be the object offset on an array modifier. I'll do some experimenting, but could it be that after I applied the array modifier, the normals of the empty were applied to the objects of the array?