I would use a program canvas with a contact washing machine step to fix values on new contact creation and on update. Either by Proper casing or removing a value if blank like you mentioned. You could also look for specific values and change accordingly.
Data Quality is not new and if you can't fix the values at source (SFDC in your instance) then you can't rely on the field for personalisation.
A solution in Eloqua is to use something like Social Sign-in and have the individual give you access to their first name as used in that environment. You can store this value (which is likely to be more accurate, but still not guaranteed ) in a Contact Field or a Custom Object field and then field merge from there.
You could set a default value on blank so that you get "Dear Valued Customer," but I wouldn't recommend or expect great results. If you want to personalise you need to put the effort in and really find out who you are targeting and why they are going to take some action. Personalisation is not automating a email to thousands of contacts by doing a first name field merge.