横槍で申し訳ないが、
なぜ「型はきちんと合わせて使う」とか
「Variantは極力使わない方が良い」とか言われているのかを
まずきちんと理解していないことには議論にもならないと思う。

逆を言えばそれさえ理解していれば後は作る側の部署なり個人なりの判断だろう。

Variantはほぼ何でも設定出来る便利な型だけど
メモリを圧迫したり暗黙の変換によって意図しない挙動を引き起こしたりする
使い方を知らないと非常に危険な型とも言える。

だから上で誰かが言っていた通り、使うべくして使うところで使うという考え方で良いと思う。

ただ、俺的には全て型宣言無しである程度の大きさのプログラムを組むような暴挙に出ることは
辞めておいた方が良いとは思うけどね。