This is immutable, expected behavior done by the MC Connect Managed Package. And before you do anything else: Email is a terrible, terrible Subscriberkey, please do NOT put any efforts into making it yours.
People share email addresses.
People change email addresses. (google "natural" vs "surrogate" keys). Email address is Personally Identifiable Information (PII) and as Subscriberkey, it will be in ALL your data views, Journey Logfiles, Einstein DEs,.... making a lot more places in and potentially connected to your system sensitive (in a GDPR sense) than necessary.
With that said:
If you use the standard Salesforce MC Connect feature, the Contact / Lead ID (or also User ID) will become your (billable) Contact Record in SFMC / Subscriberkey - either when synching data extensions, or when injecting them into journeys.
This is a pretty unfortunate fact but it poses a rather common challenge. It has been addressed by Salesforce in the following article. If I personally should use one key sentence to sum it up, it would be:
Learn the advantages of using the Contact object instead of the lead object.
I agree that in connected setups, really the only sustainable solution is to go for SF Contact ID (003xxxxxxxxxxxxxxx).
Whether that is possible under your circumstances depends on the usecase a lot, but in order to understand the approach and to get the peace of mind that this is an officially acknowledged challenge, this is absolutely worth your time:
If you want to or have to keep using leads AND contacts, then the challenge you need to address is a "mixed model" with two IDs. It's pretty dauting considering you could have running journeys during which people could convert, and you would have to surgically remove and reinsert them, among other things. It can get rather ugly, but going down that rabbithole also kind of derails this question, so I'll stop here. Hope this helped!