I think this would be great and would love to use keyword parameters without parenthesis...but I don't know how complicated this would be for the parser (including backwards compatibility which Jeremy (Evans) has mentioned before). If this were made possible -- there is an upside -- as anonymous blocks would also benefit from this support as this is not valid syntax (currently):
I agree that f k: at end of line should be parsed as f(k:). Even though it is backward incompatible, it can be detected statically, so the migration path is easy. Ruby 3.4 could output a deprecation warning at parse time. We could have a script/gem to detect if the pattern is currently used in any files, so people can check their application code. If it's used in any gems they could be flagged as incompatible with Ruby 3.5. There's a number of pain-free ways of dealing with this.
There was no deprecation warning for the change in 2.1. I think if we want to change behavior for foo arg:<newline>value from foo(arg: value) to foo(arg:); value, we should add a deprecation warning in 3.4, and then change the behavior in 3.5.