Time can be rewritten. At least sometimes.
The whole idea of a "fixed point in time" is that it's one specific event which cannot be changed or rewritten. No matter how much time travel happens around it, some things must always happen. We see this in, for example, "The Waters of Mars", when the Doctor tries to change a fixed death and it just happens anyway.
DOCTOR: I'm sorry, but I can't. Sometimes I can, sometimes I do. Most times I can save someone, or anyone. But not you. You wondered all your life why that Dalek spared you. I think it knew. Your death is fixed in time for ever. And that's right.
In "The Wedding of River Song" (and elsewhere in Series 6), the event of River shooting the Doctor at Lake Silencio is a fixed point in time. When she changes it, the whole universe collapses until she decides to make it happen after all.
But there's no indication that Darillium is a fixed point. Perhaps it's one of those things where, in theory, the Doctor or another time traveller could prevent it from happening and the universe and timelines would simply adjust themselves.
- From his point of view, perhaps it did already happen and for some reason his memory of it disappeared. (River Song has met earlier incarnations than the Tenth Doctor, at least in some levels of canon, and presumably memories of those disappeared since he didn't remember her in "Silence in the Library".)
- Perhaps he simply didn't notice the contradiction between her Darillium line and his supposed death at Lake Silencio. Perhaps when he did realise it was when he started making the plan with the Teselecta.
Wibbly wobbly, timey wimey ... It's Doctor Who - don't try to make too much sense of its internal consistency.