IMO it's safe to do the proposed change.
It won't affect anybody not overriding toString() (which I think is the vast majority of cases). For those who do override it, the current approach is not optimal anyways, because it makes the generated mapping asymmetric: enum -> string is mapped via toString(), whereas string -> enum is mapped via valueOf() which expects the enum member name.
I don't think it's worth the have an option for this. Those who really need to customize this, can do so via their own mapping method on a hand-written mapper and plugging this in.
Thanks for your PR. I will merge it ASAP. To be extra-safe, we can add an entry to the migration notes.
Cheers,
--Gunnar