Although Swain had done little on offense this season, mostly making his presence felt on special teams, he had a good preseason, and could have helped in the upcoming Vikings game. He didn't do much in his first game as the No. 4 WR, he was promoted after WR Jordy Nelson was injured against the Lions, but No. 3 WR James Jones did little against the Browns too. The game plan last week was to run a lot against the Browns' bad run defense. But the Vikings have a great run defense, so I wouldn't be surprised if they plan to run more 4 WR sets next week, especially if TE Jermichael Finley misses the game with his knee injury.
Allen barely made a ripple on the field during the preseason, but he showed enough to make the practice squad last month. Maybe the coaches blamed QB Brian Brohm for the bad preseason pass offense, and decided to give Allen another chance. At 6'4" he's the tallest WR on the roster, and since the Vikings don't have a cornerback over 6'0", he might be able to take advantage of his height, if he plays on Sunday.
With Allen's promotion, and depth becoming an issue at receiver, they added two WRs to the practice squad. Recently signed G Stanley Daniels was released to make room for them. Daniels was signed for depth after the initial ankle injury to LT Chad Clifton, but with the emergence of LT T.J. Lang, and the likely return of Clifton, he isn't needed at this point. I think WR Kole Heckendorf might have been signed to the practice squad instead, if he had been available, but he was recently added to the Lions' practice squad.
As to the two receivers signed: WR Patrick Williams was barely mentioned here at all after a quiet preseason, but he should be familiar with the offense and have a short learning curve. WR Biran Ealy worked with the Saints and Ravens so far this season, but spent time dropping passes for the Titans in 2008.