Your example, the O, isn't a stroke with non-uniform width. It's a combined path. This is normal for how letters are constructed.

Draw 2 ellipses, fill only, no stroke, different sizes
Align the ellipses, bring the smaller to front, select both
Apply Path > Subtract. The result is a combined path. The parts can be recovered (not colors) with Path > Break apart.
NOTE: SVG ellipses aren't actually paths (=Bezier curves), but current Inkscape converts them for convenience to paths automatically if one applies to them path combination operations. SVG has rectangles and ellipses which behave this way. To be able to apply more advanced path functions one must apply at first Path > Object to Path to get Bezier curves.
If you need a single stroke with non-uniform width, you have 3 options:
1) Path function Pattern along Path
2) Path function Power Stroke, as mentioned by others.
3) Inkscape Extension Pattern along Path. It accepts groups, Pattern along Path works only if the replacement of the stroke is a single path
A single stroke is easier to deform than a complex closed shape, so these methods surely are useful to know.