Prepare ingredients: drain sauerkraut well; shred/chop corned beef; cube potatoes and set in cold water; grate Swiss cheese.
Heat butter + oil in a 5–6 qt heavy pot over medium heat. Add onion, carrot, and celery. Sweat gently 8–10 minutes until softened (don’t brown).
Add garlic and cook 30–45 seconds until fragrant. Stir in flour and cook 1–2 minutes, stirring constantly to form a light roux. Mix in caraway seeds and smoked paprika if using.
Slowly whisk in beef broth and water, scraping the pot’s bottom to release any fond. Bring to a gentle simmer.
Add diced potatoes. Simmer 12–15 minutes until potatoes are tender.
Stir in chopped corned beef and drained sauerkraut. Reduce heat and simmer 8–10 minutes to meld flavors. Taste for salt (corned beef/sauerkraut can be salty).
In a small bowl, whisk together heavy cream and Dijon mustard. Temper the cream by whisking in ~½ cup hot broth, then slowly stir the warmed cream into the pot. Keep heat low—do not boil.
Add shredded Swiss cheese gradually, stirring until fully melted and smooth. If using sour cream instead of part cream, fold in off-heat to avoid curdling.
Stir in apple cider vinegar to brighten; adjust with more to taste. Finish with black pepper and only add salt if necessary. Remove from heat and rest 5–10 minutes.
Serve topped with toasted rye croutons, a sprinkle of dill or chives, and an optional drizzle of Russian dressing.