The reason I find it confusing is that ref does not take, a "length argument."
My semi-educated guess is that the intended meaning is something like, "If the length argument of a call to String.make, Bytes.make, Bytes.create, or Array.make is not 0, the result is guaranteed to be heap-allocated and non-constant. The result of a call to ref is [always] guaranteed to be heap-allocated and non-constant."
Could someone either confirm my guess or tell me that I am mistaken? Also, if my guess is, in fact, accurate, what's the best way to add my suggested revision to the "to consider for inclusion into the next version of the manual" list?