My setup is MCF51JM128 on a custom board, P&E USB Multilink Universal, and CW for MCU 10.2. I use debug/run configurations with default debugger settings.
When I have the debugger connected and COP watchdog times out, then execution stops and an exception handler (I'd have to check for which vector) is executed continuously.
If I then disconnect the debugger, reset the MCU with an external reset button and wait for an another COP timeout, then I can see that MCU gets reset but it doesn't restart program execution.
I recently spent a very indecent amount of time debugging this, until I discovered that once the power is cycled program execution is restarted normally after COP timeout. The conclusion was that even if the debugger is disconnected from the target in CodeWarrior before disconnecting it physically from the target, it still leaves MCU's debug controller active and waiting for debug commands, thus preventing the core from starting program execution after reset.
I think that you may be experiencing the same "problem". If you have an LED connected to your MCU's GPIO then just turn it on before jumping to the infinite loop. It should turn off after COP timeout when all the peripherals get reset. Reset pin is also pulsed low so you can check it with a 'scope.
If you only want to check whether the COP is working, then load the program through the debugger, disconnect it, cycle target's power and then have the MCU jump to the infinite loop.
If you want to force a hardware reset, then I think that writing an invalid value (e.g. 0) to SRS is the best option. It causes the MCU to reset immediately, you don't have to wait up to a second for a COP timeout.
If that is not it, then maybe a bug in your code disables COP. You can lock COP setting by writing its control bits in SOPT1 and SOPT2.