In case 3, you are not testing the router at all – the PCs are connected only through a Gigabit Ethernet switch built into the router. The switch is capable of independently forwarding packets (or rather whole Ethernet frames) between ports at line rate, and the router's main CPU doesn't even see them. This is standard for hosts that are part of the same subnet.
In case 1, the PC is now connected through the Netgear router's 400 MHz MIPS CPU and the speed is limited by the CPU's capabilities (such types of routers rarely have hardware offload for routing, from what I know). For example, even if you disable the firewall, you're not disabling it completely – the packets still need to be processed for NAT to work (so the firewall's connection tracking system remains active). I do think 300 Mbps is a bit too low but I would not expect it to ever go above (let's say) 600 Mbps or so.
(Also, according to OpenWRT's diagrams, the CPU only has a single Gigabit Ethernet interface which is shared by WAN and LAN ports. In theory this should still be capable of 1 Gbps upload or download – though not both at once – but I still have a suspicion that it doesn't help the situation at all.)
The manufacturer states that the fiber/cable port should support 1Gbit.
Which it does – if you're getting speeds above 100 Mbps, then that means the Ethernet port is certainly running in 1 Gbps (1000BASE-T) mode. (Unlike Wi-Fi, Ethernet has no other modes in-between; if the manufacturer wants to go above 100 Mbps, the closest higher mode is 1 Gbps.)
However, the manufacturer does not state that the router will be able to make full use of that 1 Gbps support. The actual throughput is limited by other components (most likely the CPU).