Regarding the source control part, flowing change sets between workspaces is important when sharing code and moving changes around. A release engineer would likely be delivering and accepting change sets that was created by another developer. Plus, your own workspace is completely configurable with whatever changes that you want so I would expect that you can suspend/discard/accept change sets. For deliver, it is based on a permission to deliver to the stream but there isn't anything preventing users delivering someone else's change set. It's assumed that a user has permission to deliver to a stream because the user is trusted to deliver good code or is delivering on behalf of another developer that needed a review or isn't trusted enough.
Unfortunately, what you're asking isn't provided out of the box. If you really need a permission to prevent users delivering another user's change set, you'll have to open an enhancement. Or, one idea is to create an advisor to do this check to prevent this action.
As for the work items, perhaps someone else with more knowledge about the work item configuration can comment on whether what you want is possible.