Cook bacon pieces over medium heat in a large heavy-bottomed pot or Dutch oven until crisp, about 6-8 minutes, or until bacon is crisp. Using a slotted spoon, transfer it to a paper towel-lined plate and set aside.
Reserve about 2 tablespoons of bacon grease in the pot and discard the rest.
Add butter and melt it over medium heat.
Add diced onion, stir and cook for about 3-4 minutes, or until softed. Add garlic and flour, stir and cook for about 1 minute, stirring often.
Pour in the broth little by little, while whisking to combine it with the flour mixture.
Increase heat to medium-high and add in the corn kernels, potatoes, dried herbs, smoked paprika, and salt and pepper. Stir and bring to a boil, then reduce heat to medium-low and simmer for about 20 minutes, or until the potatoes are fork-tender. Make sure to stir the soup from time to time.
Use an immersion blender to blend about half of the soup until smooth. Or transfer about 3 cups of the soup to a blender and blend until smooth. Add the mixture back into the pot and stir to combine.
Add in half and half, reserved corn juice, some green onions, and about half of the bacon. Stir in and simmer for 5 minutes.
Taste and adjust for salt and pepper.
Serve sprinkled with green onions and remaining cooked bacon.