But we ended up implementing a single level Multi-AND [2] so that this no longer a tree for just AND expressions & can be vectorized neater than the nested structure with a function call for each (this looks more like a tail-call rather than a recursive function).
The ORC CNF conversion has a similar massively exponential item inside which is protected by a check for 256 items or less[3].
[1] - https://github.com/t3rmin4t0r/captain-hook/blob/master/src/m...
[2] - https://issues.apache.org/jira/browse/HIVE-11398
[3] - https://github.com/apache/hive/blob/master/storage-api/src/j...