No te permite cambiarle el nombre por un problema en el manejo interno de MySQL para ese caso: No cambia el nombre, sino que crea una columna con el nombre nuevo, copia los datos y trata de borrar la vieja columna. Entonces, en los hechos es lo mismo que intentar dropearla: No te dejará porque violaría la restricción de FK.
Empecemos por mirar lo que dices en un momento:
Cita: No había caído en que answers tiene una foreign key de questions y esta a su vez tiene una foreign key de typequestions.
Se supone que en ese contexto lo que hay que hacer es borrar answers antes de questions. Lo que resulta difícil (y eso lo aclara el manual) es hacerlo usando JOIN, porque MySQL no lee la dependencia, sino que intenta realizar el borrado en base a un plan calculado
on the fly, y puede estar haciéndolo al revés.
Ahora bien, para hacerte simple la tarea, hagamos esto: Agregale un ON DELETE CASCADE ON UPDATE CASCADE a la FK de answers.
Básicamente es eliminar la FK y volverla a crear. Luego de que lo hagas, si borras questions, se borrarán solas las answers dependientes.