Help with understanding Arduino

I think that you missed the difference between microprocessors and microcontrollers. A microprocessor has dedicated address and data lines, which allow to connect arbitrary addressable cards. The interface chips for a microprocessor have address and data lines as well, and two read/write or chip select pins. A microcontroller instead has I/O pins, for direct connection to I/O pins of external circuits. This means that every "card" must be connected to different I/O pins.

If you really want a bus system with exchangeable cards, a one wire or two wire (I2C) bus is the way to go. This will also answer your NFC question, because every device on such a bus must have a unique address. The many available chips with I2C interface have fixed built-in addresses, so that the controller can determine which (responding) slave types are actually attached to the bus.

Else the Arduino Mega has a memory interface, with dedicated address and data lines, which allows access also to old style microprocessor peripheral chips.