My answer is probably going to be a bit more maths/physics oriented, so be aware of that bias here.
-mods help create several 'topical' threads, which all users can post questions/answers in, but must strictly be relevant to the given topics.
--difficult to do, but in my opinion the best way to go
--This does not mean new threads cannot be created. It just means if people want to quickly ask a question on a popular topic, there is a thread they can post in without having to create a new thread.
You mean for methods, you'd have a logarithms thread, a differentiation thread etc.
That might not be as helpful if you have a lot of people posting in the one thread. For example, someone might have made the realisation that the derivative is the gradient and being able to understand explanations on that level. Another person reading and asking questions in that same thread might not have made that realisation. I guess it's the same problem as megathreads.
I guess they could pose as some sort of quick reference for common problems, which is handy. I think that would be the main advantage of this. I do also think that it might complicate things a bit - it's really easy to go new thread, post question - but having to go find the correct topic, I don't know what that would be like for a new user.
-allow mega/user-threads
--I don't like the lack of structure in these threads
I do think these megathreads can limit discussion, you might still have a question but the conversation keeps flowing etc. I guess they are subject-based like Camo mentioned - I think they do work (to an extent) for maths/physics from what I've seen. Other subjects, I don't really know. The IT megathreads were most definitely ineffective.
I remember reading a few chemistry type ones, that seemed to be a bit iffy. Like those topical threads you suggested, I think they also have the problem of everyone being on different levels.
I don't think user threads are as bad (unless it gets transformed into a megathread), it means that the user can dictate the pace etc. Of course, that point is futile when others start posting their questions in that same thread. However, if the pace can be dictated by the posting user - than they can ask questions based on what they know and find what they're not realising etc.
I think the user threads are also useful for when a single person has a lot of questions in a short period of time. Making constant new threads isn't ideal.
-make each question their own individual threads
--there may be thread explosion, but it will mean finding a previous answer will be easier
I guess this would fix the problem of limited discussion - with individual threads anyone can chip in without having the discussion moved onto a completely different topic.
The advantages of finding previous answers is definitely a benefit. However, I think the extent of the benefit will depend on how well the database can be queried and how well old threads can be found. In my opinion, the search on AN is a bit slow, particularly if you want to make a lot of searches in one go. I usually end up just using Google with a lot of operators added in (e.g. inurl:atarnotes.com). That does have it's limitations of course. It's harder to search by user with Google etc.
I'm not sure if a lot of people actually make regular use of those extra search operators that can be used in Google - so for the majority the benefit is kind of moot.
I guess thread explosion should not be an issue if topics are named efficiently. Obviously stuff like "methods help plz" is not very helpful.
The best option would definitely be a combination, hence why I'm not going to vote in the poll. I definitely like user threads - particularly if the user is posting a lot of questions, mega threads not so much (mega thread being two or more people posting questions), topical threads - I don't have a definite opinion on these yet, single question threads - I have no problem with these. I think single threads are the best option, but obviously there is a need for the other types in a few cases.