This is fine, the cir.scope is created to represent the overall scope where the if codegen actually happens within (it's where init statements will place their alloca, etc). Poking at the IfStmt some layers above for this optimization isn't worth it IMO - the cleanup pass should be stripping the cir.scope here anwyays, but let me track that as a separate issue.
Originally posted by @bcardosolopes in #436 (comment)