UI( 入力制御部分 )
これは数値だけを見て動けば良いシステムの根幹部分には必要ないものだけど
プログラムを作っていく段階で、
既にマウスクリックやドラッグアンドドロップ等の、入力制御を実装するコードを
簡単に持ち込めるのであれば
さっさと持ってきてUIと同時に作ったほうが楽な場合もある

将棋のコマをオブジェクト化っていうのも、人によってはその実現が楽だという事で
現在自分が持ってる再利用可能なコードで開発効率の大部分は決定されてしまう
現代のプログラミングはほとんどが
0から作る場合において設計をどうすれば効率良いか?って次元の話じゃない 0から作らない

こうしたほうがスマートな設計だ!なんて語る前に、それでどの程度の開発効率出るのかやってみるしかないと思うのだけど?