Hmm, I'm not sure I agree with you there - the GSM carriers charge to ring you in another country, because the foreign country operator charges your home carrier for the privilege of using their network to find you.
Also, when I've used that Cancel All Forwarding code, it resets itself after a day or so.
There is also a 3rd way:
- Cancel all call/voicemail forwarding (using the call forwarding menu or dialling ##002#)
You will then have a choice of either rejecting the call (by pressing the END/NO button), or letting it ring until the caller hangs up. There will be no charge to either yourself or the caller for either option.