Right! Do you suggest to add some amount of routes to specific nets via tun0 and default route via eth0?
Why i need tbltun0 then?! I can add that amount of static routes.
First, you have already a solution that works for you. There is no urgent need to do something else.
A route can match only destination address. If you want to direct traffic to tunnel from only select sources, i.e. want different different routes for some hosts in your LAN, then you need separates tables and rules.
The task was to separate traffic according the list. Source base routing from one host was used as a way to debug masquerading issue. You’re right if source is also a condition of routing then different tables are needed.