I do this all the time. It is a very efficient way of aggregating (threading) content. You might want a bit of content in more than one place on your site, or you want for users to be able to find that content in different navigational ways. My go-to plugin for this is Query Wrangler. I use it extensively. (I’m a Drupal developer and this was built by a WordPress/Drupal developer, so suits me well.)
You can create dynamic Pages or Posts based on taxonomy (categories, tags, custom taxonomy, etc.). Since it generates a shortcode for this query, you can drop it in anywhere — on a Post, on a Page, in a Widget. Easily whip up a custom, dynamic sidebar menu (e.g., based on category) with it.
[To the original poster: no you wouldn’t ‘make posts categories instead’, but you would CATEGORIZE your posts and pages. And, if you really want to be slick, you’ll categorize media, too. You can use a plugin like Ninja Pages or another to allow categories & tags on Pages, as well.]
Use case: I have a site for an agency with multiple divisions. For each division, I have an Events page. But, I also want an Events page for the whole agency. No need to create & maintain that content twice. Simply create that Agency Events page and then drop in shortcodes for my various Query Wrangler queries that dynamically build the division events pages.
You also can place Posts within a Page, or even Page within a Page, using other plugins such as “Insert Pages” or “Display Posts Shortcodes”.
Another use for placing “posts on pages” (or even pages within pages) in akin to an include file.
On current site, I have created a unique quasi-footer (it displays within the content area of a post/page) for each of the Agency divisions’ landing page. Sure, I could write this into template file, but I want staff to be able to easily edit the content for this footer, as they are use to doing for editing Posts/Pages. So, I just embed that Page (content snippet) within the landing Page for each agency.