A number of libraries make a point of clearing pending interrupt flags before they start, attachInterrupt probably does this which is what might be causing your confusion.
You do not need to attach/detach the interrupt, you can simply disable interrupts temporarily. Any interrupts which happen while disabled will be held in a pending state and processed when interrupts are re enabled, this is standard practice for accessing shared variables etc.
loop()
{
..
..
..
nointerrupts(); // disable interrupts while we do something sensitive like access a shared variable which is also accessed in the interrupt
..
..
..
interrupts(); // reenable interrupts, any that occured between nointerrupts and now, will be serviced now.
..
..
}
Duane B