A quick look through the imagecache module suggests that the only time the module itself enforces the "view imagecache [preset]" permission is when it is serving private files. This makes sense in that once the image derivative is created in the public files structure, it is never called; once a file "really exists" drupal is never bootstrapped up, it is only booted up to create the derivative the first time it's not found.
So, then, what are these permissions useful for? Well I'd imagine so you could do something like this...
$presets=array('small', 'medium', 'large');
foreach($presets as $preset) {
if (user_access('view imagecache ' . $preset)) {
// do whatever your module wants with that preset, create a link, show the image, whatever
}
}
...in your own module.
As for lightbox2, a quick look there shows it just presents a list of possible Display Field options using all of the imagecache presets. As to why it doesn't check these permissions when building these links is a question for that module's maintainer on its issue queue on drupal.org.