To answer question 1: it isn't a bug. It's because you changed the entire line offset of the line that the font marker is applied to, not the offset for the font markers themselves.
Applying a line offset is like drawing the outline of a buffer. At sharp corners, whether concave or convex, in order to maintain a constant line offset distance, the geometry of the resulting line has to change by adding an extra vertex to accommodate, even when the join type is miter (i.e. retains sharpness; join type round will obviously generate way more additional vertices).
Here's a visualisation of an Outline: simple line symbol, with the line offset set to 5 mm. Notice that with the sharp concave corner, the shape cannot retain the same sharpness (=1 vertex) without the extreme point having >5mm distance from the original line. Therefore an extra vertex is added to accommodate. You will see a similar effect for sharp convex corners as well.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/RtdzE.png)
Question 2: Going back to your original set up, to adjust font marker position typically you should use the x/y offset parameters of the font marker itself, rather than the line offset for the marker line.
Of course, this only adjusts your font markers in the X/Y direction rather than away from the point.
However, if you just want the font marker at a specific vertex to be shifted, you can use a data-defined override for the font marker offset.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/XBqmF.png)
For example, if you want to offset vertex 7 by -10mm in the X dimension:
array(
if(@geometry_point_num = 7, --vertex no. to apply custom x offset to
-10, --custom x offset
string_to_array(@value,',')[0]),
string_to_array(@value,',')[1]
)
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/LWQ5n.png)
Ultimately, though, a geometry generator approach like Babel's is ideal (if you want to use layer styling) as you have full control of the geometry and therefore number of vertices generated, rather than be vulnerable to the number of markers generated by marker line symbology.
If you want full labeling control of your vertices, rather than mucking around with complex offset expressions, you could use Virtual Layer per this answer as long as your polygon layer has an unique ID field (p.id
in the linked answer)