They must be implementing something incorrectly then. Below is a truncated exrheader on a file out of Nuke with the "interleave" knob set to "channels" which means each layer is put into a separate part..
file testMultiPartChannelsdwaa.exr:
file format version: 2, flags 0x1000
part 0:
channels (type chlist):
x, 16-bit floating-point, sampling 1 1
y, 16-bit floating-point, sampling 1 1
z, 16-bit floating-point, sampling 1 1
chunkCount (type int): 34
compression (type compression): dwa, small scanline blocks
dataWindow (type box2i): (0 240) - (2047 1315)
displayWindow (type box2i): (0 0) - (2047 1555)
dwaCompressionLevel (type float): 45
lineOrder (type lineOrder): increasing y
name (type string): "N.left"
nuke/full_layer_names (type int): 0
nuke/node_hash (type string): "368b9d1b87a4b787"
nuke/version (type string): "9.0v8"
pixelAspectRatio (type float): 1
screenWindowCenter (type v2f): (0 0)
screenWindowWidth (type float): 1
type (type string): "scanlineimage"
version (type int): 1
view (type string): "left"
part 1:
channels (type chlist):
x, 16-bit floating-point, sampling 1 1
y, 16-bit floating-point, sampling 1 1
z, 16-bit floating-point, sampling 1 1
chunkCount (type int): 34
compression (type compression): dwa, small scanline blocks
dataWindow (type box2i): (0 240) - (2047 1315)
displayWindow (type box2i): (0 0) - (2047 1555)
dwaCompressionLevel (type float): 45
lineOrder (type lineOrder): increasing y
name (type string): "P.left"
pixelAspectRatio (type float): 1
screenWindowCenter (type v2f): (0 0)
screenWindowWidth (type float): 1
type (type string): "scanlineimage"
version (type int): 1
view (type string): "left"
part 2:
channels (type chlist):
Z, 16-bit floating-point, sampling 1 1
chunkCount (type int): 34
compression (type compression): dwa, small scanline blocks
dataWindow (type box2i): (0 240) - (2047 1315)
displayWindow (type box2i): (0 0) - (2047 1555)
dwaCompressionLevel (type float): 45
lineOrder (type lineOrder): increasing y
name (type string): "depth.left"
pixelAspectRatio (type float): 1
screenWindowCenter (type v2f): (0 0)
screenWindowWidth (type float): 1
type (type string): "scanlineimage"
version (type int): 1
view (type string): "left"
part 3:
channels (type chlist):
u, 16-bit floating-point, sampling 1 1
v, 16-bit floating-point, sampling 1 1
chunkCount (type int): 34
compression (type compression): dwa, small scanline blocks
dataWindow (type box2i): (0 240) - (2047 1315)
displayWindow (type box2i): (0 0) - (2047 1555)
dwaCompressionLevel (type float): 45
lineOrder (type lineOrder): increasing y
name (type string): "motion.left"
pixelAspectRatio (type float): 1
screenWindowCenter (type v2f): (0 0)
screenWindowWidth (type float): 1
type (type string): "scanlineimage"
version (type int): 1
view (type string): "left"
part 4:
channels (type chlist):
A, 16-bit floating-point, sampling 1 1
B, 16-bit floating-point, sampling 1 1
G, 16-bit floating-point, sampling 1 1
R, 16-bit floating-point, sampling 1 1
chunkCount (type int): 34
compression (type compression): dwa, small scanline blocks
dataWindow (type box2i): (0 240) - (2047 1315)
displayWindow (type box2i): (0 0) - (2047 1555)
dwaCompressionLevel (type float): 45
lineOrder (type lineOrder): increasing y
name (type string): "rgba.left"
pixelAspectRatio (type float): 1
screenWindowCenter (type v2f): (0 0)
screenWindowWidth (type float): 1
type (type string): "scanlineimage"
version (type int): 1
view (type string): "left"