For every branch you repeatedly add to your component inner loop consider adding a new component. Example: if (hasInput && input.action) doThings; Each component with no input has to process this branch and it clutters/complexifies your inner loop, trashing cache lines & BTBs.
Yes! My engine's design is inspired from elements of that talk. My engine goes a bit farther, and makes certain multi-threading guarantees about component access, so I often find it better to lean into components when I can. Doesn't apply to all ECS implementations tho.