Type guards should not affect values of type any

This PR changes type guards to not affect values of type any.

Fixes #1426.

This is somethign that would compltely break my expectations from reading the code.  can you rename the isStructuredType flag to 'isStructuredTypeAtAnyDepth()' or something that can at least indicate that it's doing something extra.