Respecto a la cuarta pregunta, yo diría, pero no estoy muy seguro, que cuando se lee desde teclado, el último carácter leido ( es decir, de final de línea ) es el '\n'. Sin embargo, cuando se lee desde fichero, una línea acaba con '\0' ( al hacer getline y almacenarlo en buffer seguro ).
Sobre la pregunta 3, yo diría que depende del tipo de matriz y depende de como lo almacenes. Si la matriz tiene celdas de char * , entonces puedes almacenar una palabra en una celda. Si no, si la matriz tiene celdas de char, obviamente cada caracter irá en una celda.
Saludos!