awk の OFS は有効です


OFSの指定を無視して入力レコードがそのまま出力されます。

awkコマンドのOFSが無効になるとき - 杉風呂2.0 - A Lifelog -

実際には無視していません。

{print}

は $0 が省略されているだけで、$0 は FS で分割されているわけではなく、この場合には 1 行なので、正しい出力です。

#! /usr/bin/gawk -f
BEGIN {
    FS  = ",";
    OFS = "|";
}
{
    gsub(FS, OFS);
    print;
}

のようにすることで、$1 から $NF までのものを FS から OFS に変換したかのようにして出力しますが、この場合には $0 が gsub() で置換されます。
置換されたくない場合には gawk の gensub() を使うことで回避できます。