I know the topic of having an inline element around a block-level element as being semantically invalid has been discussed here at length.
However, the situation of putting an "a" element around a "div" seems unescapable whevener you want to... well... put a link around a box (with CSS-defined width and height for instance). That looks like a very common situation and there's absolutely nothing wrong with the rendering.
But how to do this while staying semantically correct?