The {...props} order bug is the one I've seen bite teams the most, especially once a design system wraps every icon in its own component and nobody remembers to check spread order six months later. I'd add one more trap to your edge case list: a global .icon { width: 24px !important } left over from an old reset will beat both the size prop and correct spread order, and it looks exactly like a broken component so people go debugging JSX for an hour before checking the stylesheet. Worth grepping for !important on icon classes before blaming the component.