This is in fact a topic I recently took attention to and I’ve already addressed in the Tattoo development path. I believe Raymond is working on a similar solution for MODx that will be in an upcoming release, as well, but if someone wouldn’t mind putting a ticket into the system so we can track this as a feature enhancement request for MODx, that’d be great, if it doesn’t already exist.
The performance problem is really only visible the more times eval() is called. The overhead of setting up the PHP environment space for the eval to run in seems to increase the more times it is executed during a single request, such as in a loop when processing a large quantity of snippets. And I have in fact found that including 500 snippet files is a lot cheaper than eval()’ing 500 times, at least in my test environment, which is consistent with other recent articles on the subject suggest.
[EDIT: I believe, as the author of that article indicates, is more noticable in versions of PHP 5 than in PHP 4]
But, replacing eval with another technique will not only improve performance, but it will most likely tighten security, reducing the arbitrary code execution risks inherent in eval() calls, from those that are driven by the passion to destroy through hacking.