I tried to figure out the inferred latch and why it is needed internally, but I couldn\'t find any resources with enough detail.
Latches are only generated with combinational always blocks. Sequential logic will never generate a latch.
For more information read about how transparent latches are created and how to avoid inferring latches