I make use of Gmail labels (tags) to categorise my email and I like the way Gmail keeps all emails from a thread in a single conversation. However, I have never been able to work out exactly how they have implemented it..
From the interface, a label is on a conversation - either in the list of conversations, or when you open up a conversation and get the labels at the top (not on each email). This seems fine, it is how I would expect it to work since conversations are a major part of Gmail.
The problem is, i'm not sure it is really implemented as it would seem. If you label a conversation, then send a reply to that conversation what happens? Is your reply really labelled? Try this - send two separate emails and label them both from your Sent Mail. Now go into the first one and reply to it. Now click on the label and your'll see both your conversations - but what order are they in? It's the order of the original two mails, the reply didn't affect the order. It might not matter in this case, but what if you replied to an older mail in a label that has lots of conversations in it - I have often got confused looking for a conversation that I knew I had replied to on a particular day but it was actually in the list a lot further back, maybe not even on the first page.
However, if you send those two separate emails, reply to the first one and THEN label them, you get the expected order.
Maybe this is deliberate, but I cannot see a scenario where this makes sense - everything about the UI and operation of Gmail indicates that a label is on a conversation not an individual mail, but it just doesn't seem to be implemented like that!