Ian
I find that charging per keyword is open to too much misunderstanding. I'll certainly take into account the number of keywords I'm going to have to research for each site, but I still charge a flat fee based roughly on the number of hours I reckon I'll spend on the project, plus a bit more for 'the buggeration factor'!
On another matter you mentioned in your post...
If you optimise for "Tim Hortons chocolate donuts" and have as a matter of course also optimised for "Tim Hortons" "Hortons chocolate" "chocolate donuts" "Tim donuts" "Hortons donuts" and so forth.
Are you sure about that? I agree with "Tim Hortons", "Hortons chocolate" and "chocolate donuts" as exact match searches. But, IMO, 'Tim donuts' and 'Hortons donuts' are not exact matches because they have other words separating them.
So, if the searcher keyed in the two words: Hortons donuts (no quotation marks) as their search query, then this keyword phrase would be returned with the two words separately highlighted; but if they keyed in the exact match phrase: "Hortons donuts" (with quotation marks), then this keyword phrase would not be returned.
So this is just an awfully long-winded way of saying that, IMO, the keyword phrase 'Tim Hortons chocolate donuts' does NOT fully optimise you for 'Tim donuts' and 'Hortons donuts'.
BrianR