The drawback is it eats chip RAM.
It's possible to make any-direction scrolling routine where map size can be unlimited big, but screen size stays fixed at:
width: (visible_width + tile_width * 2)
height: (visible_height + tile_height * 2)
btw, another trick: do not just use two screens (for double buffering). Instead use three screens. The third screen is scrolled like the others, but you don't blit any bobs/objects into it. This way it's always empty. So you can use it as restore-buffer. And can skip the backup-parts-of-screen-which-bob-will-overpaint part for game objects. Big speedup as scrolling is so fast anyway.