Warm butter and oil in a large heavy pot over medium heat.
Sauté the onion until translucent, about 4 to 5 minutes.
Stir in the diced apple and cook until slightly softened, about 2 minutes.
Add the shredded cabbage and toss until it begins to wilt, 3 to 4 minutes.
Season with sugar, salt, pepper, cloves, allspice, and caraway; stir to coat evenly.
Pour in vinegar, red wine, and broth; scrape up any browned bits from the pot.
Bring to a simmer, cover, and cook on low heat until very tender, 45 to 55 minutes, stirring occasionally.
Uncover and simmer a few minutes to reduce excess liquid. Stir in currant jelly, if using, and adjust seasoning.
Let rest 5 minutes, then serve warm.