Generated completion words for tl-session-param are right now filtered in two different places: tl-session-param and optcomplete. This makes the code hard to follow and difficult to test, causing it to be fragile. For specific completers like this, some of them in other scripts sanitize their own suggestions, while others rely on optcomplete to filter suggestions. Due to how we've built things, optcomplete's filtering will always be active. But the code in tl-session-param's completers rely on a mix of filtering-sources, as mentioned above.
A good way to simplify things and probably work around this bug is to base the suggestions from the tl-session-param completer function on the prefix. Right now, we start from the root of the parameter structure, regardless of the prefix.