Ese realmente no es el problema, lo mismo te puede pasar sin usar eval. El problema real es que es poco elegante. Es propenso a dar problemas y promociona una forma de escribir código sucia y confusa.
Eval no funciona con funciones variables (el ejemplo $f() de acido69). Eval no se lleva bien con variables globales, o por lo menos no en todas las versiones/plataformas. Eval es lento (del orden de 10-15 veces más lento que la ejecución normal de código). Eval no encuentra llamadas que vayan a código que ha sido ofuscado con Zend Encoder. Los errores que se producen dentro del código pasado a eval son más difíciles de localizar.
La lista es larga, pero además es que en este caso es innecesario usar eval(). Si prefieres, tunait, te puedes quedar con esta cita:
Cita: "If eval() is the answer, you're almost certainly asking the wrong question." -- Rasmus Lerdorf BDFL of PHP
Cita: "Si eval() es la respuesta, casi seguro que estás haciendo la pregunta equivocada."