Heat a large, heavy saucepan over medium-high heat for 30 seconds. Add 1-1/2 Tbs. of the oil, along with the onion, carrot, and celery. Season with salt and cook, stirring occasionally, until the vegetables soften and start to brown, about 7 minutes. Add half the garlic and cook for 30 seconds, stirring. Add the beans and their cooking liquid (there should be about 4 cups liquid; if not, add more water to equal this amount) and half the rosemary. Season well with salt and pepper. Bring to a boil, lower the heat to a bare simmer, and cook for 30 minutes so that the beans soften a little more but don’t break up. Let cool for 10 minutes. Scoop out 1 cup of the beans and set aside. Working in batches, purée the remaining beans and all of the broth in a blender. Transfer the puréed soup and the reserved beans to a clean saucepan and keep warm over low heat. Add the lemon juice and salt and pepper to taste. Thin with water, if necessary, to get the consistency you like.
Heat a large skillet over medium-high heat for 1 minute. Add 1-1/2 Tbs. of the oil and the bread cubes and season well with salt and pepper. Cook, tossing frequently, until the bread starts to brown around the edges, 2 to 3 minutes. Toss in the remaining garlic and continue cooking for 1 minute, tossing well. Transfer to a large plate. Season the shrimp well with salt and pepper. Add the remaining 2 tablespoons olive oil and the shrimp to the skillet and sauté, stirring often, until the shrimp is firm, opaque, and browned slightly, 3 to 4 minutes.
Ladle the soup into large, shallow bowls and dust with a pinch of cayenne. Garnish with a few of the croutons, a portion of the shrimp, a sprinkling of the remaining rosemary and a drizzle of oil.