Thanks for the explanation shdwdrgn (ShadowDragon?).
Since, as you say, the SD card is serially addressed, then it seems reasonable to suppose that the limitations are down to the driver (since the device would generally expect an address length capable of addressing its full size). However, this implies that the driver knows how long the address field must be for the particular device in question (i.e. must know the size of the memory). I haven't played with SD devices, so I don't know if there's a standard way of finding this out (it may be in the SD spec somewhere), but if the driver needs to do this in different ways for each manufacturer/device or needs to infer the size from some sort of device ID, then the drivers would have to be updated from time to time, to add new devices/sizes to its list of supported devices. So, it is quite possible that the initial drivers only supported devices and address spaces up to the maximum device size known at the time they were written (e.g. 128MB or 256MB).
Having said that, since 128MB and 256MB would require 27 and 28 bits of address respectively anyway, the address parameters would almost certainly be passed as 32-bit unsigned (or possibly signed) integers, giving address spaces of up to 4GB (or 2GB if signed integers are used and -ve values are ignored (sometimes -1 is used as a special value)). So, the interface probably wouldn't need to be changed to support devices up to 4GB (or 2GB). However, after this limit is reached, the interface would no doubt need to changed (e.g. to use a 64-bit address or some sort of paging system).
The CF cards may be slightly different, in that the CF slot supports microdrives (which currently appear to go up to 5.5 or even 8GB) and may be treated more like disk drives than memory, with different addressing mechanisms (especially if, as you say, the CF spec. says sizes up to 127GB are supported), although I haven't seen any indication that anyone has got anything above 4GB working with the Z (although some people appear to be trying)).
Thanks for the advice about moving away from the Sharp ROM. I've already switched to OpenZaurus 3.5.1 with Opie 1.1.6, as I wanted more Open Source Linux compatibility (although some of the Sharp supplied applications might be nice to try to retrofit once I've got everything working as I want it).
Now, to try to figure-out what software I need on the PC to sync the upgraded Z with LookOut!...
(having fun and learning lots along the way...