You're not too late, and thanks for engaging with the issue. I don't think anyone would dispute that users will sometimes want a setup without a teardown. But the question is should we require that users explicitly make the scope of a setup well-defined. Like Jarek, I have some ambivalence on the question but lean toward requiring explicitness, though I can accept the alternative.
Note currently we're not requiring an empty *setup* for unmatched teardowns since it wouldn't make a difference anyway; i.e. the notion of "scope" is only really a question for setups; for teardowns there's no material impact. An aside concerning associations with unittests / pytest... I think it's fair to say that this AIP took some inspiration from unittests / pytest. But the goal of the AIP is not to replicate the API of unittests / pytest in airflow. Indeed airflow provides a much richer vocabulary for expressing task pipelines, and this AIP adds to the richness of that vocabulary. And fundamentally, the goal is not to adhere to some aesthetic ideal or perfect consistency with some other API but rather to provide useful functionality for expressing real world pipelines and solving real world problems in Airflow. And along these lines I think that a 1-1 correspondence with unittests is neither something we should aspire to nor be limited by (not that you're suggesting this, but it comes up). Airflow is something different from unittess, and the setup and teardown functionality is something different from unittests / pytest, notwithstanding the reasonable analogies we can observe.