I am trying to interface a 4GB SD Card in my application using 4-bit SD data transfer mode, but some of my friends said that the 4-bit SD data transfer mode supports upto 2GB SD Cards and above that memory you should use SPI interface. Is it true that the use of 4-bit SD data transfer mode only works upto 2GB. If yes, why is it like that?
No, that's nonsense. SD and SPI modes can both be used to access data on any size of card.
What is true is that SDHC cards (that is, SD cards larger than 2 GB) must be initialized differently than plain SD cards (2 GB or less). However, this is true no matter whether you're using the SD interface or SPI.