Yes, your observation is correct/expected. Intel driver defines a physical function per port.
Mellanox driver defines physical function per card and views virtual functions being "copies" of physical function - so each virtual function will have two ports if card is a dual-port.