Generally speaking a single node setup of OpenStack (i.e.[DevStack])(http://docs.openstack.org/developer/devstack/) is used for testing purposes. It is not designed for production and thus most would strongly discourage such implementation. From a personal perspective, I've used it to test certain OpenStack components that aren't fully available yet (i.e Sahara). For those purposes it is a fantastic environment.
A multi-node setup on the other hand is what most (if not all) production environments run on. Given the various components of OpenStack having all components on one node can significantly affect performance as you are limited to whatever resources that one node may have. Multi-Node not only provides a solution for this, but it is also highly scalable in the sense that if you require more compute power all you have to do is add more compute nodes (same with swift for storage, etc.). Additionally, having various nodes for various components can offer a failover in the case of one of your nodes suffers downtime.
Multi-Node is what I would recommend, but feel free to test out DevStack. It will allow you to test and answer a lot of your questions.