A dica é boa, mas na prática, vc raramente vai precisar de eval
.
Geralmente vc usa um parser específico pra cada situação. Por exemplo, para código Python tem o ast
já citado, para expressões numéricas existem módulos como o numexpr, e por aí vai.
Claro que em um ambiente controlado, se souber o que está fazendo, um eval
não vai fazer tão mal. Mas se vc vai aceitar entradas do usuário (ou seja, ele pode digitar qualquer coisa), aí tem que tomar cuidado e validar os dados (e se possível, restringir e usar parsers específicos para cada situação).