I think breaking the RFC process into two stages - identifying problems and proposing solutions - is a really great idea. I don’t think it makes sense at this stage for these two projects to be combined into a single process.
However, I think it may make more sense to recognize that a ‘new feature’ as described in an RFC may interact with multiple open problems. I don’t think we should think of this as a new step in the process for ‘an RFC,’ but rather as two systems - one, a forum for discussing and identifying problems that Rust has, another, a forum for proposing features that mitigate or resolve those problems.
An RFC then could have a more complex relationship with the open problems than a 1-to-1 ‘solves’ relationship. A single RFC could simultaneously solve open problem A, mitigates some of the issues described in open problem B without totally resolving them, and exacerbate open problem C. This also could make it easier to identify some of the drawbacks of an RFC.
Looked at it this way, the list of problems may be of widely varying scope. They could range from things which are probably resolved by a single RFC (like a gap in the standard library) to things that will probably be chipped away at by many different RFCs before they’re finally considered resolved - things like “string handling in Rust is very confusing to new users,” or “orphan rules can make certain kinds of generic code really frustrating.”
There should also be space for discussing open problems in an open ended way separate from drafting an RFC which proposes a specific feature. The idea that we are ready for opening an RFC PR should emerge from that conversation, though given this proposed many-to-many relationship between problems and RFCs, I’m not sure how the assignment of shepherding responsibilities would work.
Lastly, I’d note that the issues on the RFC repo currently serves some of this function, very informally.