I think money is an issue. But I also think principle plays a role. Some players are just very protective with whom they lend out their name. Nike? Sure. Lender's Bagels? Maybe. Yankee Candles? Hell yes. Visual Concepts? Not so sure. Maybe the money for being on 2K doesn't match what they'd get for being one of the sole spokesmen for one of the other companies. Also, at least one legend (Barkley) brought up the fact that he usually doesn't like associating with the NBA because he doesn't like the lack of support they provide for his retired teammates (and others before him). So that's likely why he okay'd a Dream Team appearance but not classic NBA team.
Regarding filling in missing legends, I think it might depend upon what system you have. I've heard the PS3 isn't as compatible in this regard as the 360. 2KShare is simply an online roster sharing feature. To access, you'd boot up the game, go to "Features", click on "2KShare" and find the roster you desire by either searching by gamertag (of the person who made the roster) or by file name (ex: 1995). On the 360, there's a user named portlandblazer who's been cranking out incredible classic rosters for years, so I can usually search his username on 2KShare and find his latest awesome work.
Now, about the workaround last year. 2K offered a DLC midway through their release, the Legends Showcase, which took place in New York. This showcase featured dozens of classic players not included in the regular version of 2K (Alex English, Rick Barry, prime Vince Carter, etc.). 360 users (and maybe PS3) were able to find a way to shift these players from the DLC to the regular game (along with many classic jerseys unique to the DLC). This allowed the classic rosters created to be much more authentic, as a user-made '93 Suns team could then have nearly every player except for Charles Barkley, since Dan Majerle, Tom Chambers and company were in the DLC.
I think it's too early to tell what players will be unlockable by experienced game editors this year.