BTW, what's the argument for restricting participation to only registered users of the system? In my mind, it's so you can register posts against a user ID in the system, and then return all posts against that user in the future or for archival purposes.
This is correct. We require users to be logged in so that we have a unique identifier for every user. Not only is this used for assigning stories, but it's also required when you pitch a story, vote, or volunteer.
From a data perspective, we need the unique identifier so the record of the users' participation remains consistent across all of their interactions. For instance, if they try to vote we need to ensure they haven't voted before. They need to log in to vote to begin with, so it makes sense to use WordPress' user model than rewrite our own that does the exact same thing. Does explanation make sense?
My boss, on the other hand, wants the freedom to add names from outside freelancers, but does not want to give them user roles in the system. And, he doesn't want to return posts against those user names.
I understand the product request from your boss. If he's really set on not having every contributor sign up for an account, which means they also won't be able to vote, pitch a story via form, or volunteer, then another suggestion I could offer is to have a custom field called 'byline' and have that appear on your template instead of the author in the database if there's a value for it. Would that work?