This is exactly the discussion I was hoping to have...
I like these discussions too ! a think that (non trivially) flawed designs are as instructive as good ones; I'd really like a C++ book collecting all real world disasters in C++ programming ... it would be very insightful ( oh, I'm not saying your allocator would go there ... ).

BTW, take a look here. In that article the author uses a similar approach but chooses a trait to represent per-type construction semantics ( with very limited possibilities of customization ) and, as you can see, the only real policy is the allocation policy ( = where and how something is allocated ).