Memory-mapped IO vs Port-mapped IO in microcontrollers
The statement as it stand is false or least incomplete.

Normally an I/O instruction activates some special pins on the controller to distinguish the I/O operation from a memory operation.

The statement above seems to assume that the I/O instruction then uses only part of the 32-bit address bus and thus less address decoding is needed. Without mentioning this the statement is, by itself false.  

Note that, especially in the early days of the micro-controllers, whole sections of the address map would be mapped onto a few peripherals by using a few address lines to select all peripherals. e.g. address lines 15 and 14 would select one of three peripherals leaving 16K as address space. 

This technique is still widely used.
These days a 32-bit processor has 2G address space but many micro-controllers have less then 1M of memory (in Flash and RAM) requiring only 20 address lines. This leaves many spare address lines for this type of sparse decoding.