Currently, we apply both BOLT-2 incoming channels settings checks and BOLT-4 relay checks at update_add_htlc reception. We should split relay checks and get incoming HTLC acceptance generate a Event::PendingHTLCsRelayable. This event could be consumed by process_pending_htlc_relayable and should generate a PendingHTLCsForwardable. In between any kind of client custom function can be implemented support for stricter relay policy, on-the-flight generated outgoing zero-conf channel, delayed relay, trampoline-style of routing, ...
See further #670 and http://gnusha.org/rust-bitcoin/.