See https://github.com/apache/incubator-daffodil/pull/324
I still have debugging to do, and I'm not happy with the non-type-safety, and maintainability headaches this creates, but I was able to get rid of the combinatorial explosion with a modest number of lines of code changed. But most schemas work now, and schema compilation is faster, and is seemingly linear in schema size with these changes.