Defining a Customer Entity
I've been rereading some of my thoughts on orders and mulling over conversations with TR and gordon. We speculated on the need for a customer entity in Paris but didn't pursue it, instead placing a customer_uid field natively on order entities. However, we still didn't know the relationship between an e-mail address and an order, like Ubercart's $order->primary_email.
I think the obvious solution here is to define an additional customer entity that has a primary e-mail field and perhaps a primary user account uid field. Orders instead of referencing a customer_uid would then reference (or create) a customer, and for logged in users we can easily associate an order with an existing customer record based on primary uid.
The need for a customer entity is highlighted when thinking about interoperability. It's quite likely sites will not want Drupal user accounts for all their customers (this was actually a common but impossible scenario for Ubercart) but will want a common record against which to associate a person's orders. They would then tie this common record to a person / customer record in an external system.
I think we'll be best served by adding a "Customer" and "Customer UI" module to core, doing away with customer_uid on orders, and changing creator_uid to simply be uid and allow it to operate exactly like uid does on Products / Nodes (denoting ownership).