The current guard against cycles is lazy and incomplete, as it seemed unlikely we'd ever have them. That's already been disproven (DM-3400), so it seems prudent to fix the guard code now.
Removing this from the current sprint and increasing the story points, as it's a lot trickier to fix than I'd thought; I think the simplest approach is to make alias expansion nonrecursive and rewrite some of the backwards-compatibility read code from DM-1766, but a re-think of how partial alias matches work might also be worthwhile, especially if we tackle DM-1764 first.
Another thing we might want to consider changing: in the current afw code, it seems legal for an alias to shadow a field name. This should probably be an error, meaning that the table library should disallow adding a shadowed a field to a schema, or an alias that causes a field to be shadowed to an alias map. One potentially negative consequence is that implementing this may involve coupling alias maps and schemas more tightly together.
Reviewed at dm-ccb, still a valid issue but not a high priority