and I just made it work today, by storing a fake semantic for d3d8 shaders.
By the way, I am still keeping that fake semantic around - it is useful - it allows me to have a single code path for loading arrays, instead of the two we currently have, which is a mess..