Contanto que a tabela esteja vazia, não há problema. Desde que novos valores para ENUM sejam anexados e não renomeados, dada uma tabela preenchida, novamente não há problema.
O ENUM que você redefiniu na sua pergunta realmente manteve os valores internos originais de yes e no como a tabela de teste se lembrou pela última vez.
O seguinte se aplica às tabelas preenchidas:
E isso?
ALTER TABLE `test`
CHANGE `bool` `bool` ENUM( 'no', 'yes', 'maybe' )
CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
Agora você tem um problema. Os valores ENUM em uma tabela totalmente preenchida teriam seus valores internos revertidos para que sim agora não e agora não seja sim.
E isso?
ALTER TABLE `test`
CHANGE `bool` `bool` ENUM( 'maybe', 'no', 'yes' )
CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
Grande problema. Em uma tabela preenchida, sim é agora talvez. Novas linhas inseridas com yes são desconectadas das linhas yes anteriores porque agora significam talvez.
RESUMO
Existem técnicas de isca e troca de alto risco para fazer isso muito rapidamente no MyISAM . Eu não recomendaria isso no InnoDB por causa de sua interação de identificação do espaço de tabela com o ibdata1.