1.) AFAIK kommt bei der dotNET-SDK ein Compiler mit. AFAIK.
2.) Öhm, das aktuelle SDK?
3.) Ich würde ja zu einem vernünftigen C++-Compiler (g++) raten, aber der ist kostenlos. Und du willst ja offenbar Basic.
4.) Schließen das dotNET-Framework und Standard-Win-Executables sich nicht gegenseitig aus? Wenn du ein Programm mit dotNET machst dann kann es nur von Leuten ausgeführt werden, die das Framework haben.
5.) Ja. VB.net ist kein VB, es ist dotNET mit einer Basic-artigen Syntax. So wie C# dotNET mit einer C-artigen Syntax ist.