Solid.difference question

Solid.difference question

when I difference from a revolved solid, it missed the inner surface
when I difference from a original Cylinder, it is ok.

Why is that?