The reason is two-fold, Kev-O, and I’ll try to explain.
First, show me any conditional and I can give you an example of it used in a context of where the developer does want it parsed and evaluated in time to create a variable, and another where they would not want it parsed at that time. Because people wish to do so many things in the templates, EE can only be predictive to a degree within the confines of things taking place in a particular order.
Second is that with thoughtful template design and URL structure, that type of assignment is often unnecessary, as ExpressionEngine has many ways to automatically constrain tag output with semantic and useful URLs. In the cases that it does not meet your needs, these segment conditionals you refer to can simply call a shared embedded template, passing the necessary variable via an embed variable. The result is that you end up with cleaner looking templates, and have less duplicated code.