I have used 8 bit microcontrollers and each of their ports has 8 pins. So, I thought a 32 bit microcontroller will have 32 pins in each port (i.e. 32 bit data bus). But today i saw STM32F070RB pin configuration and noticed that each of its port has only 16 pins (instead of 32). Why is that so? Am i missing something here or each port can have any number of pins (irrespective of microcontroller)?
The simplest answer is: cost. More pins mean a larger, more expensive package. Since the number of applications which actually require a 32-bit port are vanishingly small, especially compared to the number of applications which might require 2, 16-bit ports or 4, 8-bit ports, no sane manufacturer is going to go that route.
Since the tiny minority can be addressed (usually) by driving multiple smaller ports, partitioning I/O pins into smaller ports makes excellent sense. Additionally, a processor with 32 I/O pins configured as a single port would be far less useful to most users than one with more, smaller ports. Such a device (a single 32-bit port) would occupy, and dominate, a fabulously small niche, and the manufacturer would lose money.
TL;DR - There just aren't enough people who want such a device to make it worth anybody's while to make them.
STM32's port definition allow only 16 pins/port, because they re-use the upper 16 bits.
Look at how the BRR and BSRR registers work - the upper 16 bits have a complemantary function.