Agreed on all counts, except with the remark that even with sane grammars unbounded lookahead will still appear if you want to have IDE-grade error resilience.
But I wholeheartedly agree with the sentiment of "don't make the grammar look like Scala" <3
The “IDE-grade” error resilience can be approached in many ways, and unbounded lookahead is often unnecessary. The main problem you want to solve is the problem of recovering from an error, and parsing more of the file correctly after you encounter an error. One way you can do this is by finding statement or declaration boundaries, which can be done in surprisingly simple ways.
I mostly agree with this, but what I mean with the unbounded lookahead part of it is that bounding the amount of speculation (or lookaheads/backtracking) is equivalent to limiting the "size" of the error you can recover from.
You should definitely have bounds though, but the point is that if it's too low you might give up on the input too soon.
But I wholeheartedly agree with the sentiment of "don't make the grammar look like Scala" <3