Why can't we declare and assign a logic type in one step?

You can declare and assign a logic type with constants on the right hand side, but not with variables.

Sure you can. You just showed it in your EDA Playground example.