mbc_enc_len() (2)

「別の話」と言われればそうですが、鬼車に渡される文字列は、一文字を完成していない不完全なバイト列は含まないことを条件にしているので、バイト列の終了位置をチェックしなくてよいという意味では共通の話です。
不完全なバイト列を渡した場合の動作は保証しません。落ちることもあります。

鬼車を呼ぶ前に「一文字を完成していない不完全なバイト列は含まない」ことをチェックするのはかなりコストが高いのですが、

「コストが高い」というのは、実行コストですか、実装コストですか?
どちら側で実装しようが、コストがそんなに変わるとも思えませんが。