I think iterables should always have a string-keyed name for getting an iterator, as an alias for the Symbol.iterator method. It shouldn't universally be named values - for example, for strings I think we should have codepoints - but I think that's the ideal, rather than trying to make Iterator.from more convenient. That would be a feature request for 402, which they accept as issues.
Note that almost every iterable web API already has .values (in webidl declaring something as iterable automatically adds .values, .keys, and a few others), so it's only a few places in JS which are missing such a method.
Re: solution 2, we are never going to add any new string-keyed properties to Object.prototype under any circumstances.
(I’m glad we have Iterator methods now. It took me a while to figure out that iterator-first can fit well into JS—seeing Rust’s iteration API finally made it click.)