A lot of our users are using modern PDKs and the SPICE files in them can be complex. For example I recently worked with a 12nm PDK. The AST resulting from parameter resolutions was over 50,000 nodes deep. An earlier version of our parser had a bottleneck that prevented this from parsing efficiently (or at all, actually). That got fixed. Other modern PDKs have similar issues in my experience and they get worse at smaller process nodes.
I'm not worried about the parse times for 99% of analog circuits which are of modest size. But we have users who need to run very large circuit simulations, on the order of 10M-100M transistors. At that scale, every little performance improvement matters. Earlier in the project we didn't care that much about optimizing the parser, because we figured its cost would be amortized over the course of a simulation, and the most important costs were in model evaluations and numerical solvers. But, we learned the hard way that parser performance also matters, at least for large scale.
I understand the argument that "netlists are bad". But we don't have the luxury of ignoring them given our user base.
We are familiar with OpenAccess, but haven't had the bandwidth to pursue it yet.
Eric