Is there any sort of indication of which bank is which?
It depends on the mapper being used (which depends on the game).
But 99% of the time, banks are either 16K ($4000 bytes) or 8K ($2000 bytes) in size. So basically if you were to take the ROM (minus header) and break it up into several $4000 or $2000 byte chunks, those would be the banks.
Example: Assuming you have 16K banks, the ROM would look like this:
0x00000 - 0x0000F = header
0x00010 - 0x0400F = bank 0
0x04010 - 0x0800F = bank 1
0x08010 - 0x0C00F = bank 2
Isn't this most because of how the pointer is strucured? If you have a one or two byte pointer, it's implied the pointer can only be used for that bank only.
As Psyklax mentioned, not really.
It has to do with the NES only having a 16-bit address bus (unlike the SNES and apparently GBC which have a 24-bit bus). On the SNES you can have a 3 byte pointer because the assembly allows for 3-byte addresses. But the NES assembly only allows for 2-byte addresses. Period.
However, an NES game could
have 3 byte pointers. But for that to work, the game would not be able to use the pointer directly. It would have to examine the address, manually swap in the desired bank, then modify the pointer to point to the right data before actually using it. Most games do not do this.