It's impossible for Fido to know that you are dialing long distance, because you dialed the local calling card number. They can only see the calling card number, and have no idea about any digit you enter after that (your PIN, then your destination number).
The only explanation is that you forgot to use the calling card. During the spring festival it's very hard to call China with a calling card, and sometimes you have to make lots of calls to get through. Maybe you forgot to use the calling card once during all those calls (and maybe that's how you got through).