Hi,
1) You don't need to enable the interrupt thru the INTCON register - DTInts does that for you.

2) You must read PortB in the interrupt handler to end the mismatch condition. If you DON'T read the port in the handler the interrupt will fire again as soon you exit the handler you're stuck in an endless loop. Constantly reading and comparing it in the main routine would defeat the whole purpose of interrupts ;-)

3) If you, when you "declare" the interrupts set the clear flag parameter to YES then you don't need to clear the interrupt request flag "manually" in the ISR.

Once in the interrupt handler you don't need to do anything in particular (when using DT-Ints). The @ INT_ENABLE RBC_INT is used to enable the interrupts at the beginning (ie. setting the appropriate interrupt enable bit in the INTCON register etc) and again IF you've manually disabled the interrupts.

As for the last question I don't think it matters much, it will either return to the beginning or it will end up at the NOP and then goto to the beginning which puts it to sleep.

Hope I got that right, and that it helps.
/Henrik.