This question has been asked numerous times in the past, and I've been asked the same thing twice in the last week, so I thought I should maybe write up a quick FAQ about why OpenMPT still doesn't have more than one effect column in the pattern editor.
In essence, several factors play into it. Try answering the following questions:
1. What should happen if the same effect is encountered in two different columns of the same cell?
2. What should happen if two contradicting effects are encountered?
To give a good example where this will fail, imagine the retrigger (Qxy / Rxy) effect: It has a counter that, when reaching zero, retriggers the note. Now what happens if you put two retrigger effects in the same cell?
1. Execute them both, using just one state variable as before. This would lead to hard to understand and random behaviour.
2. Execute them both, having one state variable per column. This would be confusing if you switch between columns.
3. Execute only one of them. But which one? Why should it be the leftmost one? Why should it be the rightmost one? Both choices are arbitrary.
Now I hear you saying "but you can already put exx in the volume column and Fxx in the effect column and they contradict each other", and in a sense you are right. But:
1. The behaviour for this contradiction is well-defined. I don't want to and cannot make up and verify well-defined behaviour for each possible effect combination (there are too many).
2. The effects don't contradict each other when actually processing them: They have no internal state or counter like the retrigger effect. Putting several slide effects on different columns is not a big problem.
This is just one example, but there are many other problematic situations, and I really don't want to consider an exponentially growing number of potentially conflicting commands and hardcode their behaviour if they are encountered together. As an example, note delay + retrigger would need to be hardcoded at the very least: Should the retrigger command do something before the first delayed tick is encountered? If so, should this only affect an already playing note? If yes, what should happen if there was an already playing note but it reached its sample end? What about VSTis in this case?
To propose some actual solutions that could be implemented in the far future:
1. Have dedicated effect columns for specific effects, like in Renoise: e.g. volume, panning, delay, other. Would always take more space in the pattern if you need them all, but is very tidy and simple to implement. Or maybe, to mimic the existing system a bit more: volume + slides, volume + slides, delay, other.
2. Have only one column into which problematic effects like retrigger can be entered. I imagine this to be confusing, though, since it would be hard to distinguish where you can enter what. Right now, the volume and effect column are very distinct from each other, but having two identical-looking columns with different effect sets would be confusing.
Maintaining support for legacy formats will also complicate this even further.