It returns False, but definitely behaves like Transient. I don't know what the upper limit is (Roku memory?). Sounds like this is definitely a bug.
In console I tested:
sec = CreateObject("roRegistrySection", "test")
FOR i = 1 to 50000: sec.Write(i.ToStr(), i.ToStr()): END FOR
? sec.Flush()
Then I exited channel (Home), opened another channel, exited it, reloaded channel, and entered in console:
sec = CreateObject("roRegistrySection", "test")
FOR i = 1 to 50010: ? i ", " sec.Read(i.ToStr()): END FOR
I've only tested on my Roku HD 2500, Software 6.2 build 3471