Neither of the above is perfect, in that each is a hyperbola and not a waveform. However, the lower might be called better because it does not leave holes in the output Claerbout (1995a).
To do inversion, we need operator pairs. Depending on our inversion method, we may or may not need an operator pair which is exactly adjoint. The adjoint of a push operator will be a pull operator, and vice versa, though push push or pull pull pairs can be approximately adjoint. Also, though we can choose a solver methodology which allows us to use an approximate adjoint Fomel (1996), pull operators may still be impractical. Coding NMO forward modeling as a pull operator is difficult because where velocity is not constant, traveltime may be multivalued Claerbout (1995a), or at least nontrivial to compute. This is a problem if we wish to upgrade stacking by inversion, but not for inverse velocity transform. Thus, as is the case for many geophysical operators, optimal implementation really is a function of application. The next section shows how different implementations may be easily swapped.