The title pretty much says it: If I add a block to the Dashboard and restrict it to certain roles, users of other roles will still see the block ... that is, a block with the title and the content replaced by 'empty'. Not pretty (and confusing).
As far as I can see, this is because of this in dashboard.module / dashboard_page_build
// Find blocks which were not yet displayed on the page (were empty), and
// add placeholder items in their place for rendering.
$block_list = db_select('block')
Afterwards, all rows returned by this query that is not an active block in the region is entered as an 'empty' block---including those that have been hidden because the user should not have acces to them. I assume that is not quite intended behavior?
I am not quite sure, though, because I don't understand why this (adding blocks back in as 'empty') is done in the first place ....