but the large mtd partition is mtd2, not mtd0?! (wild guess: maybe /dev/mtd0 just serves as a starting point for the write, which silently overflows into the later regions?)
The stock openwrt from the wiki does not use ubi afair,but if the NAND.img is full image you can flash the full nand not only one partition. Partitions on nand/nor are defined by kernel device tree unlike partitiontable on sd/emmc/usb-storage and similar.
Those instructions belong to the “stock” image form SinoVoip – unfortunately SinoVoip/BananaPi also calls that “OpenWrt” despite it being a downstream fork. Calling it BananaWrt or “our inhouse operating system based on OpenWrt” or something like that would make things a lot easier…
tl;dr: The instructions you quote only apply when running SinoVoip’s stock image. They do not apply when running OpenWrt (as in: the free open source software router OS you can download from openwrt.org). This is because SinoVoip’s stock image exposes an MTD device (/dev/mtd0) which covers the whole flash, while OpenWrt always only exposes individual partitions.