I think there is a glitch in the proof by induction. The proof is still valid, but they add an unnecessary assumption:
In the induction step, they choose one of the $\lambda_i$'s that is strictly positive (I guess by that, they mean nonzero). Since the sum of the $\lambda_i$'s is 1, there must be at least one that is nonzero, that part is valid. And the argument that follows is also perfectly valid.
However, why do we need to pick a nonzero $\lambda_i$? Wouldn't the argument work regardless? If $\lambda_1 = 0$, the inequality still holds. In other words, the inequality holds regardless of the value of $\lambda_1$: $$ \varphi\left( \lambda_1 x_1 + (1 - \lambda_1) \sum_{i=2}^{n+1}\frac{\lambda_i}{1-\lambda_1} x_i \right) ~\leqslant~ \lambda_1 \varphi(x_1) + (1-\lambda_1)\varphi\left( \sum_{i=2}^{n+1} \frac{\lambda_i}{1-\lambda_1} x_i \right)$$
because $\varphi$ is convex, period. No requirement on the coefficient being nonzero: according to Wikipedia's definition of a convex function, it is $\forall x_1, x_2 \in X$, $\forall \lambda \in [0,1] ~ \cdots$
Since the $\lambda_i$'s are all nonnegative and their sum is 1, then every $\lambda_i \in [0,1]$, so the definition of convexity applies.
Am I missing something?