So the pixel is a relative measure that tries to follow the general intent. Here is what W3 the organisation that maintains HTML and CSS that EPubs are made from has to say:
The px unit is the magic unit of CSS. It is not related to the current font and usually not related to physical centimeters or inches either. The px unit is defined to be small but visible, and such that a horizontal 1px wide line can be displayed with sharp edges (no anti-aliasing). What is sharp, small and visible depends on the device and the way it is used: do you hold it close to your eyes, like a mobile phone, at arms length, like a computer monitor, or somewhere in between, like an e-book reader? The px is thus not defined as a constant length, but as something that depends on the type of device and its typical use.
Clear as mud. They go on to clarify:
CSS also defines that raster images (such as photos) are, by default, displayed with one image pixel mapping to 1px. A photo with a 600 by 400 resolution will be 600px wide and 400px high. The pixels in the photo thus do not map to pixels of the display device (which may be very small), but map to px units. That makes it possible to exactly align images to other elements of a document, as long as you use px units in your style sheet, and not pt, cm, etc.
So pixels in CSS are not equivalent to image pixels, but the intent to display. If you have a 300DPI image then you have to recalculate the CSS px values to follow the intent of the 300DPI. That is what I think Scrivener is doing, it is saying display a 900x1300 physical pixel image with a 300DPI resolution (screenshot below) to yields an equivalent CSS reference pixel of 216 x 312px [ 300/72 = 4.16 --> 900 / 4.16 = 216]
You cannot simply treat a CSS pixel as a physical pixel, otherwise each device may show an image at a different size (because they also treat physical pixels differently). That is why this is not a bug, and what I think Ioa was trying to convey.
postscript: the dry definition of the CSS reference pixel is here (assumes 96dpi to yield a size of 0.75pt):
https://www.w3.org/TR/CSS22/syndata.html#valuesThe reference pixel is the visual angle of one pixel on a device with a pixel density of 96dpi and a distance from the reader of an arm's length. For a nominal arm's length of 28 inches, the visual angle is therefore about 0.0213 degrees. For reading at arm's length, 1px thus corresponds to about 0.26 mm (1/96 inch).