Answer
No — a custom field can't combine both behaviors in one field. A reference-type implementation only allows selecting from its LOV (no free typing), and there's no configuration that layers persistent free-text override capability on top of a reference-type field. If you need both lookup-assisted entry and the ability to occasionally type a non-list value, you'd need two separate fields (or a different field type entirely) rather than trying to get one field to behave both ways.