Why non-SegWit nodes do not reject SegWit block since there is no witness? SegWit is meant to be backward-compatible. When a SigWit block is relayed to a non-SegWit node, the witness part is stripped. If this is the case, wouldn't it be invalid since the non-SegWit node sees no witness/signature in transaction input?

So output is changed to anyone-can-spend output? If so, what prevents it to be spent by anyone not the intended recipient?
So output is changed to anyone-can-spend output? If so, what prevents it to be spent by anyone not the intended recipient?


No, it is not changed.

A SegWit output is anyone-can-spend from the view of old nodes. This means that to them, it can be legally spent without signature.

To new nodes, it has a different meaning, and requires a (valid) witness to be spent. Nodes that care about SegWit outputs enforce this rule, and will not accept a blockchain that spends without such a witness.