Is the external storage size limit hardware or software? AFAIK, All phones I know have a SD Card size limit. Is this hardware, or software ?

If this is hardware, what changes between, let's say a 32GB card, and a 64GB card ?

If this is software, is this just an arbitrary limit, or the system really won't be able to read it ? Is this changable (Custom ROM, Kernel) ?
As I know, this is a software limit. The communication protocol of a 32GB, 64GB or even 128GB SD card is exactly the same. Only the old non HC or XC cards of 2GB or less uses a different communication protocol. The reason that some devices doesn't support 64GB or bigger is due to the use of the exFAT file system on cards of 64GB and larger. Although, if you reformat this cards to the older FAT32 file system you can use in a device that officially supports up to 32GB cards (only in very rare cases it still doesn't work). My experience is that a 128GB card formatted in FAT32 works without issues in a Samsung Galaxy S2 that officially supports up to 32GB.