No, W3TC support mfunc and mclude and that plugin had the same security issue. The latest version of that plugin adds a security code to the mfunc command that is required to execute any code.

I had thought about implementing a similar system but since it won’t be backwards compatible anyway, I think it’s better to use a filter and avoid using eval() completely.