Maybe you're looking at the PRIMASK bit, which is manipulated by cli() and __disable_irq()?
On AVR, the GIE bit is the only global mechanism which controls whether interrupts can occur. Of course, each interrupt has to be enabled within its peripheral, but just that 1 bit enables and disables all interrupts that are enabled within their peripheral hardware.
ARM Cortex-M4 has a much more advanced system. PRIMASK can be used to prevent all interrupts from happening, so in that respect it's similar to AVR. But when you use sei() or __enable_irq() to clear PRIMASK, that does NOT necessarily allow all configured interrupts to occur. ARM has more stuff that controls which interrupt can happen.
The ARM core has a seldom accessed register called ICSR, which automatically get updated with the new priority level of an interrupt. Normally nobody writes code to access it, since it automatically manages itself. Suppose a pin change interrupt occurs and your function is running, because you used attachInterrupt. It will be running at the default priority level, which is 128. Even though PRIMASK is clear (allowing all interrupts), the setting in ICSR will always mask all other interrupts configured at 128 and lower priority (higher numbers are lower priority levels).
On AVR, the processor clear the GIE bit as it starts executing your interrupt. If it didn't, then your interrupt could interrupt itself, and all others could too, which would lead to chaos.
On ARM, the processor updates ICSR as it starts executing your interrupt. It does NOT change PRIMASK, because its interrupt system is very different from the simplistic one on AVR. So while your interrupt runs, if you look only at PRIMASK and apply experience with AVR, it might seem as if things are going horribly wrong. In fact, that's how ARM works. ICSR is the normal mechanism for managing which interrupts can happen, not PRIMASK.
ARM also has 2 bits that control each interrupt. On AVR, there's only 1 per interrupt, inside the peripheral itself. Most of the peripherals have a bit that controls whether that will generate interrupts, but there's also a 2nd bit inside the CPU core for every interrupt. AVR has nothing like this. On ARM, there's a few bits in the CPU for every interrupt, that enable/disable it, independently of the bit inside the peripheral itself. There's also a bit that tells whether the interrupt is pending and hasn't run yet. AVR has such a bit for each interrupt, but they're not memory mapped so you can't access them. On ARM, all those bits are in registers. There's also bits to force any interrupt to become pending, and to clear the pending status. There's also a bit to track if the interrupt is actually running, which adds another layer of protections to prevent the core from every running 2 instances of the same ISR (which normally couldn't happen anyway due to the priority scheme, but could if you reconfigured the priority at runtime in wreckless ways).
Anyway, the long-winded point is the ARM interrupt controller is much more sophisticated than AVR's. Things like PRIMASK provide similar capability to disable interrupts temporarily, but they're not perfectly equivalent to AVR.