Arduino simulator written in Python (C++ better)

I think the general problem with this kind of thing is when your using arduino more time is spent debugging the imperfect prototype you have built not debugging a 'perfect' version. Which if the simulator works shouldn't take very long. If you want to experiment a bread board is probably better. I mean just were do you stop if you wanted to make it really useful, it would have to have an accurate simulation of all available components or it would/could be a bit waste of time for the user. It's not really possible to do that, or if it is the effort wouldn't seem worth it. ?That's not to mention and components/sensors you could make your self. How do you simulate them is it very useful to do so at this level? In many ways it just seems like doubling up lots of aspects of project development for not much return.