I think it probably has to do with the way discussions and replies are stored. The discussion itself and the replies are separate content types in Jive (the discussions are in the JiveThread table and the replies are in the JiveMessage table) and are unique objects in Jive. Although the discussions and replies are separate things, I'm guessing they share the same set of tags. When you're finding all the object with a certain tag, it's probably picking up the whole lot of them.
If you only need to see the top level, I'd suggest having your widget filter out the messages leaving only the discussions. That should do the trick.
Naming is confusing for these things depending on where you look. Discussions are Threads in the database and Forums or ForumThreads in code. They have a content type of 1 (found in the JiveObjectType table). Replies are Messages in the database, and Messages or ForumMessages in code. They have a content type of 2. Hope that helps.