Cualquier solución simple que funcione es mantenible, confiable y funciona suficientemente bien, es una buena solución. Me parece que ya has encontrado una buena solución ...
Es probable que una solución de búsqueda de ruta sea más complicada que su solución actual y, por lo tanto, sea más probable que requiera depuración. Probablemente también será más lento.
OMI, si no está roto, no lo arregles.
EDITAR
OMI, si el laberinto está arreglado, entonces su solución actual es un código bueno / elegante. No cometa el error de equiparar "bueno" o "elegante" con "inteligente". El código simple también puede ser "bueno" y "elegante".
Si tiene niveles de laberinto configurables, tal vez debería hacer la búsqueda de ruta cuando configura inicialmente los laberintos. Lo más sencillo sería conseguir que el diseñador del laberinto lo hiciera a mano. Solo me molestaría en automatizar esto si tienes un laberinto de miles de millones ... o los usuarios pueden diseñarlos.
(Aparte: si las rutas se configuran a mano, el diseñador del laberinto podría hacer que un nivel sea más interesante utilizando rutas subóptimas ...)