It feels like deja-vu all over again... The bug originally noted in the following post (sorry, don't know how to turn it into a clickable link):
is back in a slightly mutated form :-( If I've got a project loaded but not running, and the object file is changed, I can reload it without any problems. However, if the project is running, attempting to reload causes the source code display to be updated, but the new firmware ISN'T downloaded to the target, and the existing code continues to run. However, Studio thinks the JTAGICE has been stopped, so it greys out the Break/Reset buttons making it impossible to manually stop the ICE. If I then try using the Close Project option, I get an "Avrstudio has caused an error in OLEAUT32.DLL" error...
Reloading Studio and attempting to open the project again gives me a "Could not program the fuses of the target device. Unable to continue connect sequence" error, which makes sense because the activity LED on the JTAGICE is still blinking away like crazy (although the target is no longer running), so the ICE is clearly in some sort of state where it isn't going to respond to anything Studio tells it. Cycling the power to the ICE clears it up, and Studio can then open the project as expected.
Note: this reload-whilst-running feature worked perfectly in Studio 4.02, and my JTAGICE has been updated with the 4.03-supplied firmware.