The 'bad' parts in WebGPU (anything related to BindGroups) are actually coming from Vulkan 1.0, while the 'good parts' are taken mostly from Metal.
WGSL vs SPIRV is really just a side issue that people want to focus on but doesn't really matter much in the bigger picture.