I had been lead to think that this streaming of geometry happened automattically - ie when you move into a new area of map the geometry would be loaded automatically.
As i read through the documentation it seems that the streaming actually provided is only by programmatic control. Is this the case?
I had thought streaming would help automatically with memory management on devices with low memory - but this does not appear to be the case - are there any other suggestions?
Yes, if you want to stream additional geometry or other game-related assets at runtime, you need to manually define what should be streamed, and use your code to define when that streaming should occur.
Unity's main tools for this are:
Streaming Additional "Levels"
(Level is a synonym for Scene in Unity)
Unity can stream "levels" in a linear fashion, and using this you can stream content that appears later in the game, while the user is playing earlier parts. You can't pick and choose which order the levels are loaded in, so this is typically used to load a loading screen, menu scene, level 1 scene, level 2 scene, etc. in order.
Asset Bundles give you the functionality to download and instantiate any type of asset at runtime, so you are free from the "linear" nature of the level loading system. Asset Bundles are a Pro Only feature.
For web builds, the contents of your Resource folder gets attached to a particular Level of your choosing, and is loaded as part of that level's download progress, so once that level is loaded, you're free to instantiate items from your Resources.