Strip down Doctrine.php so it does not have any Doctrine logic in it. It needs to be as small as possible. Possibly just the getPath() method.
Add Doctrine_Autoload implementation to replace Doctrine::loadModels() and Doctrine::autoload().
Re-factor model behavior implementation. Combine Doctrine_Template and Doctrine_Generator in to one abstract class Doctrine_Behavior, or Doctrine_Behavior_Template, Doctrine_Behavior_Generator
After model behavior system is re-implemented, we must update all behaviors as necessary.
Make NestedSet? behavior more like the other behaviors.
Rename Doctrine_Record to Doctrine_Entity.
Re-factor Facade out of Doctrine.php, we need a central location for this, and each facade function will serve as a factory for returning instances of classes which performs functions for Doctrines. The classes should be chainable and have a fluid interface for configuring then executing.
Re-factor attributes/configurable. Move to string based attribute system?
Re-factor Doctrine_Cli and Doctrine_Task
Implement Doctrine_ClassMetaData yaml driver and caching for parsed yaml schemas.
Re-factor and cleanup Doctrine_Data
Rename Doctrine_Parser to Doctrine_File_Parser, re-factor and cleanup also.
Implement Doctrine_Log in core components.
Finish Doctrine_Migration_Diff
Be sure all non pdo Doctrine_Adapters are available and working for people who do not have PDO.
Refactor/rewrite relations, taking into account full support for composite keys.
Rewrite the UnitOfWork?. Should have different flush modes. Should track object changes (new/deletes/modified/..), queue dml operations and be able to commit changes in the correct order, maintaining referential integrity (using a topological sort).
[DBAL/ORM separation] : split Doctrine_Connection into Doctrine::ORM::EntityManager? (no longer singleton, one em works on one connection) and Doctrine::DBAL::Connection
Revisit the hydration algorithm, introducing new scalar hydration routines/modes.
Replace the old DQL parser entirely with the new one.
Address the inconstancies of Doctrine_Null usage
Turn lazy-loading off by default. It's mostly an anti-pattern in php orm. Instead provide a fetchMode option for relations with values none(default)/lazy(1.0 behavior)/eager
Redesign the Validation API. Main goals: Extensibility, Partial Validation, Loosely coupled with the Doctrine core (may end up as separate download).
Proposed package separation: Doctrine Core (DBAL+ORM, DBAL can be available as a separate download, too), Doctrine Validators (one package), Doctrine Migrations (one package), Doctrine Behaviors (each behavior in a separate package), Utilities? (one package?), Doctrine Search (one package, it's also a behavior but imho it is much more then that. It is partially implemented through a Behavior but can provide a much larger API with additional classes).
Make the Record/Entity constructor useable for users again, with one restriction: Entities must provide a no-arg constructor so all parameters the user adds to construct() must be optional.