There is absolutely a spec violation in using weak hashing for weak etags! What part of "semantically equivalent" do you not understand? Two colliding hashes are not semantically equivalent, and that's all a "weak hash" is - something more prone to hash collisions!
The "weak" part of "weak etags" is in that they might change when they don't have to, not that they might NOT change when they DO have to! ETAGS HAVE TO CHANGE WHEN THE CONTENT CHANGES! THAT'S HOW CACHING WORKS!