Quello di prima non andava bene e lo puoi verificare con una matrice del tipo {{1,1,0},{0,1,0},{0,0,1}}.
In realtà neanche l' ultima funzione che hai scritto va bene, l' errore che fai è che assegni il valore di verif, ma non consideri il suo valore precedente. Quindi il test può fallire per tot elementi, ma se gli ultimi sono giusti la funzione la considera ugualmente una matrice identità (conviene usare un and logico).
Ad esempio la matrice {1,1,1},{0,1,0},{0,0,1} la considera una matrice identità. E tra l' altro non ti serve nemmeno fare il doppio confronto nel secondo if.
PS: Usa i tag CODE per postare il codice.