Multiple websites (or stores) would be overkill, and also comes with a heap of additional complexity.
But to answer your question in that regards, yes you can move products between stores easily.
In admin of product, you can set the website a product belongs to, by simply selecting the check-box of that website. then save.

Using categories would be your best, and easiest way.
You can achieve the 'not saleable' of products in two ways:
Use the built in 'out of stock' option in product inventory. If a product is out of stock, it will not be able to sell. You can then edit the related .phtml files to not display 'out of stock' message, but rather a custom message, or nothing if you so prefer.
If however your saleable items can also go out of stock, but still stay in the saleable category, you'd need to add a custom product attribute to the system, which you can use to denote the item as not saleable. Then in the related .phtml files you'd place a conditional to not display the add to cart buttons.
In option 2 you retain the ability to still have saleable items that is also out of stock.
In regards to managing the items in your categories, you would need to do it manually (lots and lots of potential work there)
OR (and now for some blatant self extension promotion)
you can use my Dynamic Category Products Extension
This extension woudl allow you to automate the process. You can set rules to automatically place products in either category, depending on their attribute information. In either examples you can use the 'is in stock' rule, or just configure a rule using your custom attribute.
Once the rules are done, the process will be 100% automated.

Hope that helps.