What I am thinking about is something like you can see on the above picture.
As you can see, here you can step through the source code (sketch) while keeping an eye on your variables, locals and more, this is very usefull when debugging complicated calculations, string handling and more (At least I think that ;-) )
You can set breakpoints to stop the code in specific places to check to see if everything is as you expected at this point.
The hardware simulation is a minor thing in this matter, the I/O pins can be set to 0 or 1 by a click with the mouse, nothing more, I think this simple I/O control is good enough to test many things. A simple Analog input indicator with selectable analog port. With these "simple" hardware simulation features you can come a long way.
The above simulator is a screenshot of Bascom-AVR, and if you would like to how it works you can download a demo version (can only compile 4 Kb code)
Maybe I am the only one who will find this feature usefull, especialy as a beginner to Arduino/C++.
And just to be clear, I am not complaining about Arduino, I think Arduino is just awsome, but everything can be better ;-)
Maybe this kind of simulator I am talking about is impossible to make due to some technical issues in the Arduino IDE, the Compiler or other things, I don't know but I think it could be awesome to have it.