(which I consider too ugly for words), but it does absolutely nothing for:
create_user(first_name=record[3], last_name=record[2], contact_email=record.email)
create_user(first_name=personal_name, last_name=family_name, contact_email=email_address)
create_user(first_name="Steven", last_name="D'Aprano", contact_email="steve@example.com")
create_user(first_name=first_name.title(), last_name=last_name.title(), contact_email=validate_and_clean(contact_email))
The special case "parameter name matches exactly argument expression" is far too special, and the benefit far too minor, to deserve special syntax.
Oh, one last thing... your suggestion is also brittle. If you refactor the variable name, or change the function parameter name, code using this shortcut will break.
Parameter names are part of the function API and shouldn't change, but variable names are not, and should be free to change. With your suggestion, they can't.