Does Lacinia do any validation on highly recursive or nested queries? Is there a depth limit? I know a common DOS attack is to find highly recursive, self-referencing objects.
There's an existing issue about checking for this; essentially a fragment should not be able to loop back (directly or indirectly) to itself.
No, it doesn’t, but AFAIK it exposes the parsed query before execution so you can do this yourself.