Heat a wide stock pot or dutch oven on low heat.
Add the oil and onions to the pot, cover, and cook on a low heat for 15 minutes.
Take the top off the pot. Raise the heat slightly and add 1/2 teaspoon salt, garlic, and a drizzle of honey. Cook uncovered for 30 to 40 minutes, occasionally stirring the onions. The onions should be browned but not burnt. Add a drizzle more oil if the onions are sticking to the bottom of the pot.
Add the broth or water, 1 1/2 teaspoons of salt, and balsamic vinegar, and simmer for 15 minutes. Feel free to add a bit more salt if needed.
Place soup servings in oven-safe soup bowls and sprinkle with Parmesan or Swiss cheese on top.
Place the soup bowls in an oven under a broiler or at a broil setting for 2 minutes or so, or until the cheese is bubbling.
Store leftover soup in the refrigerator for a few days, or freeze for a few months.