There are 3 main flavors of Avidemux.
2.4 and 2.5 share the same core. This core allows frame accurate seeking at every stage (encoding, filters,…). That's good to create very powerful filters. The problem is that they can only handle strict constant framerate video, i.e. without “holes” and without them changing (for example 24(nbsp)fps↔30(nbsp)fps in hybrid NTSC DVD).
If the video is not strictly constant frame rate or damaged, you end up with a/v sync errors. 2.4/2.5 handle frame ordering internally to provide the 100% frame seeking accuracy. But the reordering model of H.264 is too complicated, so in that case, accuracy is lost.
So, in a nutshell, 2.4 and 2.5 are frame oriented, time(nbsp)=(nbsp)frameNumber(nbsp)*(nbsp)timeBase.
2.4 is a monolithic program. Everything is compiled in, it installs basically one file: avidemux2_gtk/avidemux2_qt4.
2.5 is a plugin oriented version of 2.4. Half of the functionalities are handled through a plugin system. Of course, 2.5 being a much more recent version, it benefits from a lot of improvements, mainly done by Gruntster.
2.6 is a mostly rewritten core that deals with time, not frames. It can handle (slightly) damaged stream and varying frame rate without causing a/v sync errors or duplicating frames when it is not needed. The frame reordering is done by the decoder, so H.264 videos are handled like other formats. That also implies that a lot of the frame accuracy has been lost, and the video filter subsystem is much less powerful.
2.6 has also support for VDPAU, so that editing H.264 video is slighly faster.