I'd say, 3 Amp blocks with 3 channels each is better than two amp blocks with 4 channels each.
+1, since modifiers are still shared across channels, 3 3-channel or 4 2-channel amp blocks would be better ...
One of my biggest wishes for Axe III was that the modifiers would no longer be shared across channels (ability to have separate modifiers with varying settings on the same control across different channels within a block, or, a modifier on a control in one channel and no modifier on the same control in another channel within a block). On the Axe II this limitation often forces me to use 2 amp blocks (with differing modifiers on the same control) instead of being able to use 1 amp block if the limitation did not exist by allowing an amp block with differently set modifiers on the same control in X and Y in the same block.
This crops up in most of my patches since I looove to put a modifier on amp gain to control it with a pedal (works sooooo well with
Axefx - can go from light grit to high gain and anywhere in between depending on expression pedal position - I also attach the same modifier to the amp level control allowing me to keep level volume between lo-gain to hi-gain. Works beautifully, BUT, if I want a dirt amp in X with these modifiers attached, and a clean amp in Y without these modifiers (clean gain / level settings could be drastically different in Y than in X), it's not possible and I have to go to a 2nd amp block for clean sounds. Always seemed unfortunate to me, and more so now on the Axe III with double the channels but still having to share modifiers.
In a way though, I have new hope in this regard since I suspect "modifier sharing" was necessary up until now in the interests of keeping cpu/memory usage in check; but now, with an Axe III that's 2.4X the DSP, who knows, maybe this is something that's now a possibility in future firmware updates. Even allowing channels to override a given modifier to "None" with a specific value setting where other channels still use the modifier would be a huge advance (this is almost possible now as initial values can "stay put" on a given control, but as soon as the modifier is used in X or Y, the value in all channels (x or y) sharing that modifier will (often undesirably) move to the current modifier value).