The only time a topic is locked is when it's obviously going nowhere. For example, if someone makes a thread saying:
"why did blah blah do this"
the person explains why, then it just becomes a bitch fest for 5 pages. If the question has been answered, and everything after that is just bitching, it gets locked. The point is to keep it relevant, on topic and fresh. If it's just abuse or flaming, the thread gets locked. Locking is actually a much better alternative than warning everyone in the thread, and it's up to mods to use their discretion about which option to use. If the thread is still useful they can warn individuals or parse posts out, if it's gone completely tits up then a lock is usually the better option