I say no. There are a few exceptions. If when someone wanted to join, their stats were reviewed before joining and then the players could vote on accepting him/her in to the game. For example, if your team is on Round 30 and someone wants to join. His stats are that he has been to Round 10, then everyone votes against it and he leaves. Give a 60 second timer and have the person wait while the votes come in.
Here's a reason that players shouldn't be able to join. The system would brake down because no one would want to do the hard work of getting to Round 30. So everyone would quit and rejoin until they found a game that was already at Round 30. For those of us that regularly make it to Round 30, this would not be problem. I would rather spend 30 minutes finding a game already at Round 30 then spend the 3-4 HOURS getting their myself. Then I would no longer play games that start from Round 1 as starting a game from Round 20 would be faster. Too bad someone else has to carry the heavy burden while I get to Round 20 for free!
I don't care about Leaderboards. As long as I beat my current level I am happy. Starting from Round 25 and trying to get past Round 40 everytime is better than starting from Round 1 and doing the same thing. The difference in Leaderboard recognition means squat to me!
The only way to counter balance this to have an option to close slots. Meaning a solo game stays a solo game. Otherwise I will get bombarded with people joining my game and annoying the mess out of me. This is of course a game without the system described above.
Random people joining is a BAD idea. Even if they start with a disadvantage. Some people will join the later games just to see what they look like.
Imagine someone at Round 50 having a random noob, only to kamikaze in a corner. All the zombies change course when he joins, no more Rtrains for the Round 50 person, no mic...just random chaos!
That would make me rage quit Zombies FOREVER!!!