With SST v3 you're still specifying specific resources in code though, so at implementation time you have to decide which underlying infra you want to use. E.g. will you use Lambda or Fargate, this means using different SST components.
How Encore is different is that you only declare the semantics in code, and then at deploy you decide which infra to use depending on your needs for each environment. Similarly, you can choose at deploy time if you want to colocate services or deploy as separate processes, with no refactoring needed.