Rust の言語仕様以外でつらいところ、たとえばバイナリの出力が std::io として提供されているので core::fmt と違って no_std 環境で使えないなどがある
core::fmt::text と core::fmt::binary みたいな感じで formatting writer が fmt 側に統一されて、 std::io が実際の I/O のみに責任を持つようになれば、解決できるにはできるんだけど……それはそれでボイラープレート増えそうだしあまりそっち方向での期待はしていない
まあ一応 std::io::Write の上にラッパー被せて core::fmt::Write の実装を追加するようなことはできるので、どうにかなるといえばなる