Mixed and dynamic Thrift CFs deletions of the dynamic component are being translated into range tombstones in 3.0 -> 2.1 direction. On 3.0 side they are whole row deletions, and LegacyLayout::fromRow(CFMetaData, Row) turns them into range tombstones even for non-composite, dynamic and mixed Thrift CFs. They should be converted into single-cell deletions instead.
This is not a correctness problem, strictly speaking, and on its own 'only' causes digest mismatches on reads (and thus a lot of extra traffic w/ CL > ONE) and less efficient representation on wire, though breaks some upgrades in combination with
To reproduce, create a mixed CF while both nodes are on 2.1, upgrade one node to 3.0, and with cqlsh connected to 3.0 remove some rows. Then do a SELECT * query in cqlsh when connected to 2.1.