ゼロ幅マッチがありうる正規表現への行末の特別扱い、確かに vim では存在するのだけど、nvi では存在しない。おそらく正規表現レベルの話ではなく、バッファの保持の仕方に起因するのだと思う。vim では [cci]regexpengine[/cci] オプションの値によらず同じ動作をするので。
:s/a*/!/g
は nvi 1.81.6 で実行すると行末にも ! が付加される。
また、POSIX の仕様にはその辺りは特に定義されていない。
ということで、wasavi では vim には合わせないことにした。