BSONValidate has a fast path avoiding dynamic memory allocation that currently handles up to 16 levels of nesting. The structure of database commands themselves add some levels in addition to that of nesting depth of the document acted on. So, it is conceivable that there are actual use cases where the current limit of 16 may unnecessarily result in fallback to the slower dynamically sized implementation.
Changing the fast path maximum frame depth to 32 adds 8 * 16 = 128 bytes to the stack requirements of BSONValidate, which seems a reasonable trade-off.