Arduino shield pins and ICSP header mismatched height

I have noticed that arduino official shields, such as wifi and wireless shields, have mismatched ISCP header height with male pins. Both point down, but the male pins are 2mm or 0.1" longer.

My first picture shows me holding a PCB over a MEGA, showing that the female headers and at the same height as the ICSP male header on arduino.

My second picture shows three shields, from left to right, official wifi shield, official wireless shield, and a third-party Ethernet shield. As you can see, both official shields have male pins about 2mm or maybe 0.1" longer than the female ICSP header so the female header is not touch the table top. On the other hand, the third-party shield have same height.

This may create loose connection issues when you press the shield against another shield with pass-thru ICSP headers, which are thin pins, not square pins found on arduino. The additional 0.1" travel on the female header makes the connection so much more trust-worthy. I have some issues with some shields I designed and built with wifi shields. I don’t know if it was caused by this “feature”. From what I understand, all pins should make perfect contact, not some doing it while others have ways to go.
What is your opinion?

To remedy this, I made a tool, by pulling all the pins in a row of female header, indicated in the third picture. Then I slip it over the male headers, and I just have to trip the protruding portion of the male header in half, effectively removing about 2mm length.

Arduino header.jpg

Shield header and pins.jpg

trimming tool-1.jpg

trimming tool-2.jpg

I often wondered how well that SPI header worked as it's pins are a different length to those on the shield pass-through headers.



Honestly, how many shields have pass-thru headers? I count mine, and which else (I think one of the adafruit or sparkfun shields).

According to arduino team’s product stock photo, none of their shields have pass-thru headers:

Here is mine:

I might just bite the bullet and add SD card and xbee support stuff on this shield, going with surface mount ATMEGA328P-AU, and forget about stacking. At least for one project it will eliminate the official arduino wireless (xbee) shield.