古川です。

>ちょっと話の流れを追えていないのですが、結局特定バージョンの
>FreeBSDのmakeコマンドに問題があったという理解でよいのでしょうか。

はい、それで正しいです。

>拡張ライブラリのbuild中に*.aを作ることはあまりないとはいえ
>Ruby/GTK以外のライブラリでも起き得るので、mkmf.rbの
>create_makefile の方で上の2行を入れてもらうようにするという解決
>法はありでしょうか?

私自信の make に対する理解不足、および文章表現のまずさとか
いろいろ重なって混乱を招いてしまって申し訳ないのですが、
少なくとも .SUFFIXES: を使って FreeBSD の make コマンドのバグを
回避したのはあくまで結果論と言うかアドホックな対応なのだと
思います。だって、.SUFFIXES: というのは拡張子ルールに対する
制限です。一方、今回問題になった librbgdkkyesyms.a には
ちゃんと明示的なルールがあるので、本当は .SUFFIXES: で
どうこうするものではないからです。ただ、今回のケースに限っては
うまくいくと ...。この辺、私自信が混同してしまい、誤った
(というか誤解されそうな)情報を送ってしまったことをお詫びします。

# と、今の私は理解しているのですが、ひょっとしてこれも違ってるのかな ...

私は mkmf.rb のこととかあまり知らないのですが、
一般論として mkmf.rb に拡張子ルールをキャンセルするようなコードを
入れるとしたら、どの make でもおよそ同じような動作が期待できるかも、
というメリットの反面、どこぞの make が持っている拡張子ルールを
利用できなくなるので、暗黙のルールが利用できなくて面倒になるかも、
というデメリットがあります。

よって、日頃開発をしている方々を巻き込んで .SUFFIXES: を入れていいものか
どうか、入れたとしたら何か困るのではないか、などの議論の必要があると
思います。
 
# せっぱつまった生活をしてるので、頭が混乱してるかもしれません
# このメールに対する反論、訂正等ありましたらよろしくお願いします
# 特に .SUFFIXES: に対する上記の文章とかで、間違った理解をしていたら
# どなたかバシバシつっこんでください

--------
古川大介