Starting a game means you'll start fresh. That means you'll be a level one, you'll have crappy stats, etc. Starting a new game with your current character means everybody in your party will retain their levels. I don't think they'll keep their equipment, but they will keep their levels.
What is hard is dynamic coding, coding that accepts different input at different times.
This is what truly takes a large amount of effort on a developer's part.