Very limiting indeed, though it's unlikely to change ; from the manual :
"Limitations
Unfortunately due to the architecture of the Construct 2 engine, breakpoints cannot be placed in the following locations:
- Anywhere inside a triggered event, including any sub-events to a triggered event
- Anywhere inside a looping event (such as Repeat or For each), including any sub-events to a looping event
In other words, only non-looping events which are checked every tick can have breakpoints set on them, or be stepped in to."
Something to consider for C3
It is to do with the nature and architecture of every engine, they all have their limitations. You can still use the JavaScript console of your browser if you know your way around it, and revert back to "old" debugging techniques such as outputting infos to a debug log / array / xml / etc. that you can inspect
As for performance, it is expected with any tool or language that debugging will impact performance negatively ; simply due to the overhead of the debugging itself.