QDS (QlikView Distribution Service) and QVS (QlikView Service Service) are memory intensive services. And their memory needs are different, so if you are planning to have highly scalable environment, it's better to put them in separate machines.
And also QVS dumps the cached documents, calculations, ..etc. based on memory availability, if memory is shared between multiple service then availability might be uncertain.
For DEV environment, single box setup should be sufficient since we don't grant access to end users but for Production its better to have multiple box set-up.