「#version」はソースコードの先頭にないとエラーになります。前にプリプロセッサ命令があるだけでもだめ。複数のソースコードを渡している場合、最初のコードの先頭でないとだめ。2番目以降のソースコードには記述できない。前に許されるのはコメントとホワイトスぺースのみと記載されています。こちらの動作の方が正解でした。指定を分岐できないのは不便です。独自のプリプロセッサを追加するなどの対策が必要かもしれません。宣言時に変数が必要とする精度のヒントを与えます。