It certainly seems so since one can integrate something with an arbitrary head with respect to such a thing and get the expected answer. E.g.,
Integrate[f[z]^2, f[z]]
gives
( f[z]^3)/3
But
img=Image[ConstantArray[.4, {4, 4}]]
gives the noted error when tried with
Integrate[img^2, img]
If however we recognize that img is the same as
f[{{0.4, 0.4, 0.4, 0.4}, {0.4, 0.4, 0.4, 0.4}, {0.4, 0.4, 0.4,
0.4}, {0.4, 0.4, 0.4,
0.4}}, "Real", ColorSpace -> Automatic, Interleaving -> None]
and try the obvious (but unwieldy) expression (i.e., replacing Image by an arbitrary undefined head f)
Integrate[
f[{{0.4, 0.4, 0.4, 0.4}, {0.4, 0.4, 0.4, 0.4}, {0.4, 0.4, 0.4,
0.4}, {0.4, 0.4, 0.4,
0.4}}, "Real", ColorSpace -> Automatic, Interleaving -> None]^2,
f[{{0.4, 0.4, 0.4, 0.4}, {0.4, 0.4, 0.4, 0.4}, {0.4, 0.4, 0.4,
0.4}, {0.4, 0.4, 0.4,
0.4}}, "Real", ColorSpace -> Automatic, Interleaving -> None]]
we get the expected (ugly) result
1/3 f[{{0.4, 0.4, 0.4, 0.4}, {0.4, 0.4, 0.4, 0.4}, {0.4, 0.4, 0.4,
0.4}, {0.4, 0.4, 0.4, 0.4}}, "Real", ColorSpace -> Automatic,
Interleaving -> None]^3
So, yes, it seems a bug.... ;-)
I sent in a report....