Are you wanting to do ECR/ECNs and promotions from a product context that include items from a project? Not sure that's possible in that sense of the word...
Revisions are treated a little bit differently than just iterations. It's annoyting at times but I can see the thought process. If you're using promotions to release and then an ECN process triggered revise, you want that history where the rest of the version history is and not just a snippet of that history like is the case with a project. You can add a "share status" column to your version history table to see what is shared and what isn't in terms of versions.

And the project status table is also quite useful, I think. You can toggle share/checkout directly from there.

Rename: I think it's best to treat this without considering project contexts in general. If you create a new file in your workspace, you can rename it in your workspace UNTIL it's checked in. Once it's checked in, you can only rename in the product/library context where the file is. The same is true for data in a project. As long as it's in a project, it can be renamed there. Once you send to PDM (check in) you have to do that rename at the internal context (product or library). I also found that allowing moves in a project is not ideal because you can end up splitting project iteration history and it may make it difficult to know what's where. My preferred (if something was misplaced at share) was to just remove share and share again to the right location. Again, not ideal given the clunky interface and your first point with automatic folder selections.
You can have a project set up to do automatic syncs and updates. There's a preference in wt.properties that deteremines the schedule of the sync operations. https://support.ptc.com/help/windchill/r12.1.2.0/en/index.html#page/Windchill_Help_Center/interop/InteropShareAutoSynch.html

For the last thing with users working with files that aren't latest, make sure that you have a table view that displays the "Latest" column and either sync/update regularly and/or train the users to ask the project be synced and updated when there's something out of date. If you have large amounts of data generated in the project AND a large amount of files shared but still worked on in a product, it just becomes a daily accounting exercise - administrative burden. Worst case, someone somewhere will need to edit some models to resolve any missing or deleted references.