I’ve used Terraform modules for my personal infrastructure to keep things separated. They work fine for that.
Maybe if you work at a shop where you repeat the same thing, thinking of a module hierarchy that allows reuse makes a lot of sense.
But with HCL you’re essentially doomed to copy-paste your configuration anyways, so the takeaway for me is:
If you’re going to copy-paste Terraform code for entire, similar-looking projects, consider using modules.