私も2つほど案を考えていました。
1つはクジラ飛行机さんの(2)と同じで、Windowsのバージョン指定を入れるものです。
●hoge(a,b)=DLL("test.dll","int hoge(int a,int b)",[メジャーバージョン[,マイナーバージョン]])
のような感じで、Windowsのメジャーバージョンとマイナーバージョンを省略可能の形で追加できるように。
ただ、クジラ飛行机さんもおっしゃっているように、Win32APIでは良いかもしれませんが、他のDLLには対応できないので、汎用性が低いです。
もう1つは、「DLL」とは別に何らかのキーワード、仮に「DLLIF」、を導入して、
●hoge(a,b)=DLLIF("test.dll","int hoge(int a,int b)")
~関数が見つからなかったときの関数の処理内容~
という風に、DLL関数が見つからなかったときに行う処理を、普通の関数のように書くことが出来るようにする、というものです。
これだと、目的のDLL関数に合わせて、その関数が失敗したときの返り値を常に返すようにしたり、エラーメッセージを表示したりなど、柔軟な記述が出来ると思います。
ただ、内部構造として、このような書き方が許容できるかどうかは、確認していないため分かりませんが…
個人的には、出来るものなら後者の方法が採れるといいのですが、みなさんはいかがでしょう。