Heat the olive oil in a 6-quart pot over medium-high heat. Add chopped
carrots, peppercorns, parsley, dill, leeks, celery, bay leaves, and pepper
flakes and cook until vegetables are soft, about 10 minutes.
Add 6 cups water, wine, snapper bones, and salmon head and bring to a boil over
high heat. Reduce heat to medium-low and simmer, covered, skimming off any froth
that rises to the surface, for 35 minutes.
Strain the broth through a fine-mesh sieve into a bowl. Discard the solids.
Wipe out the pot and add the broth along with the remaining carrots and
potatoes. Bring to a boil, covered, over high heat. Reduce heat to medium-low
and simmer, covered, until potatoes and carrots are tender, about 25 minutes.
Add salmon to soup; simmer until just cooked through, about 5 minutes. Add lemon
juice and season generously with salt and pepper. Divide soup between bowls;
garnish with the scallions, lemon zest and dill.