...because each feature is a separate functional subsystem that manage its own part of the device state. Ansible calls these sections resources so it can manage them independently as structured data instead of "raw" cli text...
This makes automation idempotent and easier to compare with the current configuration, safer to modify specific features without affecting others, and more portable across vendors because ansible works with network concepts (VLANs...) rather than vendor-specific cli syntax...