Me gusto la solucion propuesta.
Mientras la miraba se me ocurrio otra, pero es definitivamente mas complicada, asi que la presento solo para incluir una idea adicional.
Si uno mantiene adicionalmente algun valor para cada columna / fila (por ejemplo la suma de los elementos), se puede descartar rapidamente si una fila es candidata a ser igual a otra.
1 2 3 4
4 5 6 8
7 8 9 0
[12 15 18 12] <-- sumas
Solo es necesario comparar la 1a y 4ta columna.
Lo que significa para el codigo propuesto es hacer 1 comparacion que controle si hay que hacer el ciclo for de la linea 11 o no.
La modificacion es, en la linea 10, cambiar la asignacion y hacer:
iguales = (sumas[i] == sumas[m]);
El arreglo sumas se crea en generaMat.