I spent a couple of hours on the phone to Apple support yesterday (speaking on my land line so they could actually hear me). They connected to the iPhone and ran a number of diagnostic checks. The ultimate step was to backup to iCloud then do a complete factory reset. I think this has helped but it is quite subjective and difficult to tell for sure. I'll check as I make calls today.
My testing shows that the microphone works in two modes. When you use Voice Memo the microphone picks up all the sound in the room quite happily. Apple get you to test this, presumably to check the microphone(s) are working.
However, when you are on a phone call it seems to use a different "directional" microphone mode. Presumably this is using some sort of directional signal processing to cut out any ambient noise when you are on a phone call. I assume this mode is triggered when the sensor detects you have the phone to your head and the screen goes black. It is this "holding the phone to your ear on a phone call" mode that is very sensitive to the distance your lips are from the bottom of the phone.
The best call quality is when using the headset when the directional signal processing is not used.
It seems to me that the microphone hardware is working ok but the signal processing software needs to be adjusted to widen the zone used when on a call. I suspect this is more of a problem on the iPhone 7+ as it is physically longer therefore moving the bottom of the phone further from your lips.
Hopefully a future iOS update can fix this. If you are having the problem can you also report it to Apple support so it gets flagged as a priority issue.
Andrew