### Body

Currently `start_date` is mandatory parameter.
For DAGs with `schedule=None` we can relax this requirement as no scheduling calculation needed so the `start_date` parameter isn't used.

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
with DAG(dag_id="test_dag", start_date=pendulum.now()) as dag:
            @setup
            def my_setup():
                ...
            @task_decorator
            def my_work():
                ...
            @teardown
            def my_teardown():
                ...
            s1 = my_setup()
            w1 = my_work()
            t1 = my_teardown()
            s1 >> w1 >> t1
            s1 >> t1
        assert {
            x.task_id
            for x in dag.partial_subset(
                "my_setup", include_upstream=upstream, include_downstream=downstream
            ).tasks
        } == expected
    def test_get_flat_relative_ids_two_tasks_diff_setup_teardowns_deeper(self):