Como inconveniente, imagino, que si has hecho una compilación con esos flags, sólo se podrán instalar los paquetes que generemos en la compilación no ?
En principio no deberían aparecer incompatibilidades, ya que las que he puesto arriba generan código para una familia de cores (por ejemplo mips32r2) pero optimizan para uno en concreto (-mtune=24kc); es más, un paquete que haya sido compilado con -mips32 y -mtune=mips32 debería funcionar en cualquier aparato que sea compatible con código mips32 aunque el sistema operativo haya sido compilado con, por ejemplo, -mtune=4kc.
Nota: -mips32 es lo mismo que -march=mips32
Edición: en cuanto tenga un hueco y media neurona libre (cuando me compraron en el mercadillo sólo cogieron el producto básico y sin garantía), además de hacer un par de pruebas, completo esto un poco, que da la impresión de no ser demasiado claro.

Edición 2:
En el anterior post comenté de pasada la opción -Ox que sirve para establecer la "agresividad" con la que GCC optimiza el código según las flags (banderillas) que pongamos. Tenemos los siguientes:
-O0: peor código pero compilación más rápida. Sobre todo para debug.
-O1: código algo optimizado, pero tarda un poco más en compilar y usa algo más de memoria.
-O2: el que se usa casi siempre en las distribuciones. Es un buen compromiso entre optimización y uso de memoria.
-Os: como -O2 pero sin algunas funciones para que el código sea lo más pequeño posible y use menos memoria y cache. Algunas aplicaciones y paquetes muy grandes, como Firefox, se compilan con esta opción para que no se chupen ellos solitos todos los recursos. Esta es la preferida para los sistemas embebidos con los que estamos experimentando. Algunas distribuciones ligeras, como Damn Small Linux, se compilan con esta banderilla para que vayan decentes en sistemas viejos con poca RAM.
-O3: es la optimización más agresiva, pero no es recomendable para sistemas con pocos recursos (RAM y cache) o sistemas embebidos tanto por consumo de memoria como por aumento de tamaño de las imágenes y los paquetes.
En el anterior post puse un benchmark con -O3 y se puede apreciar la diferencia con -Os. Incluí también un bechmark de un BCM6328 porque los resultados son curiosos: a pesar de usar una arquitectura más antigua que el Danube se nota el doble de cache que tiene y algunos arreglos que fijo ha hecho Broadcom.
El resumen sería: usar -Os por norma general y -O2 ó -O3 para paquetes o aplicaciones pequeñas, como por ejemplo ntpd, o que se ejecutan muy pocas veces. Cuestión de probar combinaciones...

De todas formas este post debería revisarlo alguien que sepa más que yo de estos menesteres. Tampoco me preguntéis cómo compilar un paquete aislado cambiando las flags porque no tengo ni idea.