Thanks @ordex.
Let me maybe better explain the situation.
# simplified network diagram
LAN<--->OpenVPN server<---_tunnel_to_client--->OpenVPN clientA <----> internet.
<----> clientA LAN
<---_tunnel_from_another_client----> OpenVPN clientB <---> clientB LAN
All clients connected to OVPN Server:
a) provide access to LAN behind Server and LAN behind other clients via OVPN Server - that works
b) provide access to Internet directly (no VPN involved) - that works too.
Server provides access to LAN clients directly via it's internet uplink.
_only_ specific IP/client from server side LAN needs to be pushed out via VPN back to clientA to use it's internet access.
Therefore it doesn't look like setting up iroute, which <<tell the OpenVPN server: "when a packet is directed to x.x.x.x, please send it to client Y".>> is the right thing to do as it would then cause other packets destined to internet (0.0.0.0/0) to be sent via clientA? This wouldn't work.
In my earlier efforts to get that running, as essential element, I've used PBR and did set appropriate ip rules at kernel level. It took me to the level that sounded like it was being dropped as reported earlier, then moved to ip-ip tunnel and got it working after relaxing rp_filter.
I might give it another try with OVPN and relaxed rp_filter to confirm if this wasn't the killer, though given iroute explanation it doesn't seem like it would work. I'm keen to try though for the sake of confirming it.
Thanks again for help!