Step 1Combine the beef, pork and water in a large stockpot and bring to a boil over high heat. Skim thoroughly and reduce the heat to low. Add the peeled onions and carrots, the bay leaf and peppercorns and season with salt and pepper to taste. Simmer partially covered until the meat is tender, about 1 1/2 hours. Strain the stock; you should have 10 to 11 cups. Discard the marrow bones. Cut the beef and the pork into 1 1/2-inch chunks, discarding the pork bones. Set the meat aside.
Step 2While the stock is cooking, heat the oven to 375 degrees. Wrap the beets individually in aluminum foil and bake until the tip of a small knife slides in easily, about 45 minutes. Unwrap the beets, plunge them into a bowl of cold water, then slip off the skins. Grate the beets on a four-sided box grater or shred in a food processor, and set aside.
Step 3In a large, heavy soup pot, cook the bacon in the butter over medium heat until it renders its fat. Add the chopped onion, carrot and green pepper and cook until softened, about 7 minutes. Add the cabbage and cook, stirring, for another 7 minutes.
Step 4Add the stock, potatoes, tomatoes, apple and the reserved meats. Season with salt and simmer until the potatoes are almost tender, about 15 minutes. Stir in the reserved beets and cook the soup over medium-low heat until the vegetables are soft and the flavors have melded, about 25 minutes more.
Step 5With a mortar and pestle, pound the garlic, pepper and parsley to a paste and add it to the soup. (If you don't have a mortar and pestle, use ground pepper, crushed garlic and minced parsley.) Stir in the vinegar and the sugar, adjusting the balance of sweet and sour to taste.
Step 6Let the borscht stand for 10 minutes before serving (or better, serve the next day). To serve, add a teaspoon of sour cream to each bowl and sprinkle liberally with dill and scallions. Instruct the diners to mix the sour cream well into the soup.