This might sound circular. It is because the From header cannot be verified in the way you have described.
SPF is not designed to verify header lines in this way.
You have to accept the From: line for what it is, something subject to the whims of the composer of the email.
Remember, even if the email address itself was trusted, many clients display just the stuff in quotes. They would just as easily show what the composer wanted in these two cases:
From: "night" <day@example.com>
From: "day" <day@example.com>
Do I think this is too liberal? Yeah. Is there anything that SPF can do about it? No.
DKIM is probably what you are looking for, it is focused on header validation.