Hi, complete newbie to ProcessWire, and it's eerily similar to something I was working on for myself. However, there's one striking difference which I'd like to suggest for processwire.
Not all content can be represented nicely as a 'page', so I was hoping it'd be possible to have a base content type with some set functionality, and each content type inherit from this class. Therefore a page would inherit from it, and then add all the relevant page methods and members, and each content type can be used to populate pages.
E.g. each uncached page would initiate a db request for data, and that data is populated into separate vars, for example: $page->body->author->name
$page->body->product->title
$page->body->article->body
etc.
Having separate content types would allow logical grouping of fields, and also of managing data. This could be stored nicely in the database because each content type could have its own table, and fields be added as necessary.
From what I can see so far, it looks like processwire already separates the fields of the page, so although I haven't looked at the code too much, it shouldn't be too much to use a base Content class?