The most important thing to have any "progress" happening is having something to do the actual work. You can discuss for months whether some new idea needs to be implemented in core or in a module, if noone is actually going to implement the thing, all the discussion is moot.
The current feeling on p5p seems to be like this:
- If it can be implemented as a stand-alone module as easily as in core, put it on CPAN.
- If it's "big", and it can be implemented as a module in any way, and the point above doesn't apply, first implement it as a module. Only when usage has flushed out all kinks, and actually have shown a need, inclusion in the core may be consideren.
- If you have a patch, and regression tests, and you can convince p5p it's a good idea, and it doesn't slow down current code too much, and it doesn't break existing code† and any of the points above don't apply, it may be included in the core.
- If it's a bugfix or performance improvement, it's likely to go in.
†Actually, code gets broken all the time. p5p just tries to be very careful, weighting the benefits of a new feature to the likelyhood of code breakage, and if all possible, have a full deprecation cycle. (So, if you have a patch that breaks something in 5.12, 5.14 will have the old behaviour but with a warnings, and the new functionality will be in 5.16).