From a technical standpoint, it isn't hard to architect a system with swappable inputs. The XNA system makes that especially easy. A good architect is going to separate input, rendering, game state, etc. anyway. I have built up a fairly large code library that runs on both without modification, so the idea of sharing code between them much more easily is very valid. On the flip side - the biggest issue is game DESIGN. From the get-go you have to design a game that's control scheme could be ported between both. (Controller-touch screen) Like any system you have to have your targeted platform(s) in mind when you design the application. Not all game types will be easily ported but it isn't because code re-use is an issue. Some games are easily ported. (I ported a card game from xbox to WP7 in a couple hours).