In order to evaluate an expression, Terraform first must connect all dependencies to have the data for evaluation. This means that if an expression like your depends_on example were allowed, the dependencies would have already been connected before the result is even known, making the result useless which is why it’s not allowed. I would assume var.instance_name is already taken into account in the resource config, and the backend data is coming from another expression, so this depends_on probably has no effect whatsoever.