You are right, depending on the content and the requested output size and margin it adds some more white pixels.
The renderer of the bit matrix doesn't support anti aliasing or something similar.
That means if there are for example 35x35 pixel needed for the content and you want an output of 60x60 it will add a bigger quiet zone.
On the other hand if you want an output of 70x70 pixels the renderer will stretch the matrix by 2.
The margin units are pixel (the width and height, too).
If you want more control over the stretching process you can only use the following workaround:
var writer = new BarcodeWriter
Format = BarcodeFormat.QR_CODE,
Options = new QrCodeEncodingOptions
Margin = 0,
Width = 1,
Height = 1
var bitmap = writer.Write("your content here");
// and now do some manual stretching ...