mbc_enc_len() (3)

akr> そうすると、Unicode の結合文字をひとつの文字として
     扱うのは難しそうですねぇ。

必要なら、鬼車に手を入れてもらうしかありません。
終了位置もチェックする関数をOnigEncodingTypeに追加して、アプリケーションからはmbc_enc_len()の代わりに、そちらの関数を使うとかの方法で。(正規表現の結合文字対応まで要求しているのでなければ、鬼車については大きな変更にはならないと思います)
そもそも、鬼車のエンコーディング部分は、正規表現ライブラリの実装に必要なものを提供しているだけの「おまけ」ですから、m17nの実装に利用しようとすること自体が間違いです。