When a node receives a non-standard transaction (for example, it has more than one OP_return output or has some of the non-standard outputs), it will not be relayed further through the network, however, if it is valid inside a block, it will be accepted.
What I'm curious about is what happens to a block that contains non-standard transactions? If it is valid, of course it will be accepted, but is such a block relayed further through the network or not (as in the case of transactions)?
For example, a block contains a transaction with 2 OP_return outputs, or something in the script validation is not standard, but everything is valid. This block will be accepted by the node, but will the node relay further this block to other peers or not (as in the case of non-standard transaction)?