Vado con ordine:

1)Quando includi un header dici al compilatore di occuparsi lui di capire dove come quendo includere le librerie che ci corrispondono, semplicemente tu ti garantisci di poter usare quelle funzioni nel tuo codice.

2)Un po' più avanti magari imparerai a scrivere tu gli header file per le tue librerie che ti sarai creata...

3)Sotto linux (ma potrei sbagliarmi) c'è chi usa Ansi e chi Posix, sono entrambi ben supportati, ma non sempre è così su altri sistemi operativi / dispositivi.

4)Librerie grafiche ne esistono, anche multipiattaforma: un buon esempio sono le WxWindows (o WxWidgets, ha cambiato nome di recente e non mi ricordo più il nome esatto) ma all'interno di ANSI non c'è nulla che serva a gestire finestre.

Ciao!