I will attempt to answer your questions in order. You are correct there in that events are a type of content...which will need to be stored under some kind of structure in the pages. Does it need to be under a page? yes and no. If you are wishing to access the events to display on a page (in a calendar webpart) using hierarchal queries, then yes you would need the events in the same area. You also could have the events related by some other methods such as categories or another piece of metadata. To view those related items in a calendar webpart you will need to use a SQL query as the data source vs. a path.
You are correct about the events and events bookings page types being separated. This is due to the additional functionality (I.e. Registration, attendee tracking) of the events booking system. You could store these under the same area and pull up via a path based query into a calendar webpart, but you need to make sure you only reference the fields that are the same. You could also use a sql union query to bring more together into a unified view.
The answer to your 3rd question is basically the answer to your 2nd. If you store in the same path, you could roll up both or individually based of WHERE criteria. If you store separately you can do a sql Union query and pull in together into a unified calendar.
Hope that helps. For more info on the sql Union queries check out information on the hierarchal transformations.