One has to ask at what point does review happen? An evolution to the language roughly involves these steps:
- Discover and identify a problem
- Research prior discussions and existing art in the Swift community
- Motivate the problem with real-world contexts
- Design a preliminary solution
- Prototype a solution, iterating with previous step, ensuring implementability
- Formalize the design
- Name things well
- Design code documentation markup (if that was not already done in prototyping)
- Design and implement tests
- Finalize a written proposal
- Prepare a full pull request including clean code, in-line documentation, etc for apple/swift
- Prepare a proposal pull request for apple/evolution
- Proceed through review, possibly through revision
What I've left out of these steps is community involvement. With limited time, many people feel most comfortable focusing on review. Even a good pitch, such as one with broad support in comparable modern languages, may get almost no feedback. I'm thinking particularly about @johnno1962's recent raw strings work, which will probably die before revision due to the re-pitch requirement from the core team feedback.
It's then primarily during review that the design, naming, and motivation feedback (and iteration) starts to take place because it's only then that the proposal reaches sufficient eyeballs where for a brief period of time, it gains attention for the vast majority of the Swift community who participate even slightly in the SE process. All styles of feedback are valuable components. They are, generally, most available in the official review threads, where it can be headbangingly frustrating that insights were not previously available to drive the design, etc.
We have no comparable non-binding "design review" process that promotes an idea so that it gets the proper attention before proceeding further. There's no way to officially draw attention to a proposal early in the process other than putting up a "Pitch" or "RFD" post and hoping people will notice.
Compared the larger Swift community, SE is small. Compared to review thread traffic, pitch/rfd feedback can be sparse.
The masses of design/naming/motivation feedback during review is a natural and necessary fall-out of the implement-then-adopt policy, where a review's life or death takes place after a massive investment of time in what is, outside of Apple's built-in Swift development team, often a tiny echo chamber of participants.
For a while the core team would do design reviews for proposals in the queue. These were valuable and helped drive proposals to more suitable choices or allowed them to bow out gracefully when it was clear an idea was not the right fit for the direction and philosophy of the language. I miss those reviews even though I understand how much work they were.
Naming, as nearly everyone agrees, is hard. It is also something that naturally happens quite late. Implementation can focus narrowly on the technical concerns of the solution. Naming must take a wider view, seeing how the solution fits: within the language, within terms of art, and so forth. I think it's only reasonable that a certain level of bikeshedding happen during review because it's only then that the entire picture becomes clear and only then when a sufficient number of participants are actually paying attention.
With regard to naming, while I think we should certainly prefer terms of art, I don't believe we should overly venerate them. A bad decision in one language should not propagate forward indefinitely simply because it established precedent. A cross-language review like the one @Paul_Cantrell presented involves a lot of work and dedication. That's a hard ask when the level of review commitment is so high before we have insight as to whether this proposal or that proposal actually has the strength needed to make it over the finish line.
I'd prefer to introduce a multi-stage review process rather than expanding the current demands to the point where excessive energy is spent implementing, naming, and documenting language features that should not have moved beyond a well-researched pitch. Yes, expand the requirements for naming to include state-of-the-art overviews and yes, add a documentation requirement. But I think the time for these may be after the core team has accepted its problem is well motivated and solve-able and that an implementation has been put forth that ensures the proposal has proof-of-life.