This is a good question I'm actually doing the same thing right now. Basically I had been making a game with a C++ 2.5d game engine and now I am porting it to Unity for a couple reasons. The main reason is so that we can easily publish the game to the OUYA indie game store since they have been working with Unity and will have a 1 button publish functionality. The other reason is, as you've already point out, the graphics. I am finding that it is way less code to do identical things, but that I have to pretty much manually rewrite the game. Luckily I was only about 2 months into the project, you can see it here:
But, I am getting close to finish porting it and it is already much better and manageable code wise. For example creating 50 randomly generated asteroids in code is as simple as making a prefab from the model and doing pretty much the same thing in a C# script, The GUI systems / menu's I managed to recreate without buying any of the GUI packages (NGUI, EZGUI, etc) from the Unity asset store all from a single script of only 400 lines of code compared with about 1000 lines of code from my C++ GUI class of the other game engine.
If you've been working on it for a year, then maybe it is not worth porting, and just finishing your current game and then starting your next game in Unity. You can get a better idea by maybe doing a quick and dirty prototype in Unity and then ask yourself how much longer it would take to port the full game.