The .NET Compact Framework will provide three sets of binaries for ARM.
ARMv4 for Windows Mobile 2000- and Windows Mobile 2002-based Pocket PC 2002. This will run all ARM of the ARM devices, including XScale. The cab that gets deployed to these devices only has "arm" in the name.
ARMv4 for Windows CE.NET. This will run on Windows CE.NET devices compiled with the ARMv4 kernel in Platform Builder. This will also be binaries for Windows Mobile-based Pocket PC 2003. The cab that gets deployed for these devices has "armv4" in the name.
ARMv4T or ARMv4I for Windows CE.NET. This will run on Windows CE.NET devices compiled with either the ARMv4T or ARMv4I kernels in Platform builder. The cab that gets deployed to these devices has "armv4T" in the name.
I think cabwiz is producing the first two, ARM and ARMv4 (which is how I should have titled my post). So, I wonder if the ARMv4 always works on the earlier devices? Presumably it would safer to distribute the "ARM" cab file. But are there any advantages to distributing both?