cygwinではできた

cygwinsedでは問題なくできた。

Administrator@cygwin ~
$ cat test.sed
s/world/big world/g;

Administrator@cygwin ~
$ cat hoge
hello, world!

Administrator@cygwin ~
$ sed -i -f test.sed hoge

Administrator@cygwin ~
$ cat hoge
hello, big world!

Administrator@cygwin ~
$ ls -l
total 2
-rwxrwxrwx 1 Administrators なし 18 Dec 26 14:29 hoge
-rw-r--r-- 1 Administrator  なし 21 Dec 26 13:57 test.sed

という感じで、-iオプションで拡張子を指定しない場合、元のファイルに置き換えた結果を上書きできる。perlも多分できるんじゃないかと。(試してないけど)