Place the bacon into a large pot set over medium heat. Cook for a few minutes to release some of the drippings, then add the onions and celery. Cook and stir until bacon is crisp and onions and celery are tender.
Put in the carrots, green onions, and parsley and then pour in the water and fish stock. Season the soup with salt, pepper and dill. Cover and simmer over low heat until carrots are tender, about 15 minutes. Add the potatoes and simmer for another 20 minutes, or until tender.
Meanwhile, melt the butter in a small skillet over medium heat. Stir in the flour until smooth. Continue to cook and stir until the mixture is light brown. Pour in a little bit of the milk to thin the roux, then pour it into the pot with the vegetables. Pour the rest of the milk into the pot and heat through, stirring constantly.
When the soup has thickened slightly, stir in the white wine if using. Mix in the lemon juice, smoked salmon and corn. Cook over medium heat until hot but not boiling. Ladle into soup bowls to serve.