Note that in IPv6, there is no IP header checksum! 😉
And of course in IP there is no data checksum, that’s traditionally left to layer 4.
Some switches based on a cut-through architecture (currently, I think these are somewhat rare vs store and forward architecture?) do pass some frames with errors. On those architectures typically only the first 100-ish bytes are read and the packet is already being sent out the egress port before it’s been completely read in. As such there isn’t time to evaluate the FCS and discard the frame as it’s already been sent.