I agree with much of what's been said, so let me just add a couple of points.
Could the client reasonably have expected E, F, and G to be included as part of A, B, C, and D? I mean, if this was, say, an on-line order system, and A was "customer can enter their delivery address, city, and state", and now they're saying, "wait, you didn't give us a place to enter zip code", I don't think you can fault them for thinking that was assumed under A. If now they're saying there should be a way to enter foreign countries, that's debatable, the sort of thing that should have been cleared up in early discussions. If it was mentioned in the specs/quote, you're justified in saying it's not covered, but, etc. If now they're saying that they want a weekly report of how many orders were received broken out by zip code and state and cross-reference by product category ... no.
I have fond memories of the client who, after delivery, asked how to get a certain complex report. I said sorry, no such report was ever mentioned in the requirements. And he said, "I just took it for granted that I could get any report I wanted at any time." Like yeah, that's how computers work on Star Trek.
If these new requirements are just a small extra percentage on the total project, I'd be inclined to give it to them for the sake of customer relations even though it was not in the quote. But tell them that you're giving it to them for the sake of customer relations even though it was not in the quote. Giving freebees with no caveats sets you up to be expected to do it all the time. It's been years since I've been a freelancer and I've never done this, but here's how I think I would do it if the situation came up now: Make the change, then send them a bill that says "Additional features E, F, and G ... 4 hours @ $150/hour (or whatever your rate is, obviously) ... $600. Write off for customer relations ... -$600. Net owed ... $0." Then you're telling them you did them a favor and exactly how big a favor, with no implication that you'll do it again. If anyone has tried something like this, I'd be interested to hear details and how it worked out.
You said these new requirements were just a few hours of work. But if it was a big deal, I'd be saying, "I'm sorry, but the quote covers A, B, C and D. If you have additional work you would like done, I'd be happy to prepare a new quote."
BTW You say that you provided the client with prototype versions or something of that sort along the way, and they apparently never looked at them. This is certainly not unheard of. It's happened to me, and then of course when they finally do look at it, they have a million changes. But it's a danger sign that this could be a problem client. If the client is willing to acknowledge that they never looked at things along the way and are willing to pay for rework, okay great. My company has a client like that now, they never look at things until after the project is done, so instead of making changes early when it would be easy we wait until the end when there is major rework. But they also don't balk much when we bill them for the time to do the rework. So I guess we're making more money this way, so we don't complain. But if they're not willing to pay for the rework, this is a problem client. I'd make an effort to make them happy this time, collect my money, and then avoid doing business with them in the future.