There's a lot of confusion on this topic, which isn't helped by the amount of mis-information currently in circulation.
Populations are of particular relevance when the Contact record is initally created. That is, when a Subscriber is injected into a Journey for the first time. Contact Records need to have an email address, and this is derived from the Population (much like when you use a Sendable Data Extension and the email address is derived from the email field).
While the Contact's email address can be overridden within a Journey by setting the Channel Address Order or the Entry Source, it this won't change the Contact's email address in All Contacts.
So, what happens if you create a Journey without a Population? Well, I've put this to the test and played a couple of scenarios, creating cardinal relationships in Contact Builder (without a Population) and a simple Journey with a Decision Split and Update Contact Data Activites:
Contact Records do not Exist in Marketing Cloud
If the Contact Records do not already exist, then they will attempt to enter the Journey, but fail at the Event stage with the error:
Failed - ExactTarget.JourneyBuilder.Events.Event.FilterResult: Error binding data bound member.
Contact Record already exists in Marketing Cloud
If the Contact Record already exists in Marketing Cloud, then a Population isn't required. I tested by creating the Contacts using the Contacts API method and when I fired the Event, Contacts were injected into the Journey and correctly passed through the Decision Split Criteria and updated the Data Extensions that were configured:
So it appears that it is actually possible to use Journeys without a Population, providing that the Contacts exist there in the first place. One scenario that I can think of is that if a Contact is originally created in a Parent Business Unit (for example, via a Population in Contact Builder), then a Population won't be required in any of the child Business Units if you are sending to the same Contact, as unlike Attribute Groups and Populations, Contacts are global across all Business Units.
However, before you run out and setup Populations with every single possible customer record, bear in mind that you are billed for Contacts, which includes the number of records in your Population, even if they don't yet exist as a Contact Record. :-/