On Linux routes are created automatically for the local network when an interface is brought up.
So if you have assigned the ip address 192.168.14.12 to eth0 a routed should be created that looks like this.
192.168.14.0/24 dev eth0 proto kernel scope link src 192.168.14.12
If that link route does not exist you will not be able to send or receive packets.
By running the command
ip ro flush table main you have removed all routes including the link routes from your main route table on the system. From that Linux box you can test things are seriously broken by simpling pinging another IP address. You will get a
Network is unreachable error. With no route table at all Linux will not are or really do anything on the network.
You could use a command like this to remove assigned routes without removing the link routes.
ip ro flush table main scope global
This ability to manipulate the link routes does come in handy when you are trying to do something advanced like creating a psuedo-bridge with proxy arp.