That specific example doesn't make much sense. The two checks are indeed redundant.
That would not be the case if it were tightened up. If you're calling an object method, you need to be absolutely certain that you actually have an object first, or else you'll end up with an error (call to member function on a non-object). For instance:
if ($block && $block->getAtType() == 'text') {
...
}
That makes sure $block
is not false or null before trying to call getAtType()
on it.
Note that it's better to check the type as well, if you know what type it should be.
if ($block instanceof \Magento\Framework\View\Element\BlockInterface
&& $block->getAtType() == 'text') {
...
}