The Egyptians were able to build pyramids with fairly limited technology. It doesn’t mean the technology was not limited, just means it took a ton of effort. Same thing with your Google Maps example.
IIRC FileInputStream objects in J2ME can only seek (skip) forward. If you might need data from before your current position, you can either reopen the file, or cache the data as you go (if you have the ram). Reverse seek wasn't added until Java 1.4, and J2ME is based on Java 1.3
That's just good old fashioned hacking. Wasn't this more a reflection of the various platforms' limited memory resources, and not really anything to do with J2ME?