Respecto a la segunda pregunta, aclarar que palabras reservadas son if, else, for, struct, typedef, int, char, float, return, etc..
Entiendo que a lo que te referís es si podés nombrar a una variable de la misma forma que un struct y la respuesta es sí. A modo de ejemplo, el siguiente código es completamente válido:
En el ejemplo anterior en la línea 3 se define un struct punto. Mientras que en la línea 9 se declara una variable llamada punto que es una estructura de tipo struct punto.