Airlines don't like EC261/2004, and will try to get away with not paying the expenses they are supposed to pay. And it's not just KLM that's guilty of this. Friends of mine were given the same duff "we don't have to pay because it's the weather" information by BA last year - I suspect BA thought they could get away with it because of my friends' Canadian accents, i.e., thinking Canadians won't know about EC261/2004.
If an airline won't offer you a room remind them that they have to. If they still refuse pay for it and claim it back.