(0a) An (nxm) matrix A represents a linear transformation f(x)=Ax from R^m -> R^n
(0b) A linear transformation f(x) = Ax is its own derivative, f'(x) = Ax
(3) The derivative of a function f : R^m -> R^n is a linear transformation with the same "type" R^m -> R^n as the original function. This means it is an (nxm) matrix.
The other two rules can be derived from these rules:
(1) The derivative of a function f : R^m -> R is a (1xm) matrix, aka a row vector.
(2) The derivative of a function f : R^n -> R is an (nx1) matrix, aka a column vector.
This perspective is helpful because, aided by the chain rule, we can easily derive all the other matrix algebra rules on the fly. Distinguishing row / column vectors helps catch conceptual type errors in places where it's inappropriate to add vectors and covectors together.