Limiting the length of non-literal hashed/salted key strings to 612 should be more more than plenty. As long as an error is generated instead of skipping part of the input, that's great.

As for it being practical, meh. I wouldn't have noticed if I hadn't been using a scheme that had a fixed user-defined Salt paired with key parameter strings that were always differing, but only in the last few characters. I found them sometimes encrypting the same message identically, which turned out to be caused by the unique portion being beyond position 612. Once $encode warns rather than truncating, there should be no problem for users to stay within the lines. Now that I know of the limit, I've modified what I was doing to avoid this happening again.