SimpleITK CompositeTransform versus antsApplyTransform -- Order Documentation Wrong?

The SimpleITK transform documentation and examples states:

This appears to be the same as the documentation for antsApplyTransforms:

An identity transform is pushed onto the transformation stack. Each new transform encountered on the command line is also pushed onto the transformation stack. Then, to warp the input object, each point comprising the input object is warped first according to the last transform pushed onto the stack followed by the second to last transform, etc. until the last transform encountered which is the identity transform.

However, I have found that this is not the case. I take a registration generated from antsRegistration:

antsApplyTransforms -d 3 --verbose -i moving.nii.gz -r fixed.nii.gz -t transform_1Warp.nii.gz -t transform_0GenericAffine.mat --verbose -o ants_resample.nii.gz
Using double precision for computations.
Default pixel value: 0
Input scalar image: moving.nii.gz
Reference image: fixed.nii.gz
=============================================================================
The composite transform comprises the following transforms (in order):
  1. transform_0GenericAffine.mat (type = AffineTransform)
  2. transform_1Warp.nii.gz (type = DisplacementFieldTransform)
=============================================================================
Interpolation type: LinearInterpolateImageFunction
Output warped image: ants_resample.nii.gz

And compare to a SimpleITK resample:

import SimpleITK as sitk

affine = sitk.ReadTransform('transform_0GenericAffine.mat')

warp_img = sitk.ReadImage(
    'transform_1Warp.nii.gz',
    sitk.sitkVectorFloat64
)
warp_tx = sitk.DisplacementFieldTransform(warp_img)

composite = sitk.CompositeTransform(3)
composite.AddTransform(warp_tx)
composite.AddTransform(affine)

moving_img = sitk.ReadImage('moving.nii.gz')

resampled = sitk.Resample(
    moving_img,
    sitk.ReadImage('fixed.nii.gz'),
    composite,
    sitk.sitkLinear,
    0.0,  # Default pixel value
    moving_img.GetPixelID()
)
sitk.WriteImage(resampled, 'sitk_resampled.nii.gz')

And the output is wrong.

Left, ants output (correct and expected), right simpleITK output: