The reason behind such scenarios is that when the developer console is open, there are a lot of processes that come into play over the code that runs due to stats being collected, debugger being run and what not. All these processes sometimes affect the reproduction of an issue if the issue is timing based and sometimes auto corrects if the code runs a little slow or late. Hope I am able to explain that a bit.
Besides using in such cases, screenlog.js is extremely useful in JavaScript environments where there is no console! like debugging on a mobile device (ofcourse you can use remote debugging, but this is lot simpler and in the flow)