Wondering why the FS developers default to not including rtpmap lines
for statically defined RTP payload types?
Because SIP over UDP doesn't play well with fragmentation. SDP can make packets large than the PMTU, leading to fragmented packets, which leads to devices ignoring the packet. Removing the unnecessary rtpmap lines means smaller SDP so smaller packet so less likelihood of that being an issue.
It shouldn't be such an issue over TCP.
Devices *should* support it since the standard explicitly say the rtpmap isn't required for static types, but there are some manufacturers who ignored that part so there's the verbose_sdp=true compatibility option for them.
Wonder why SIP signalling over TCP or TLS is much more reliable
through various NAT and firewall devices?
That's not necessarily a given.
In general though because the TCP connection explicitly signals the connection closing the mapping will stay in the firewall. With UDP it is removed after a long period of inactivity. That can cause problems with signalling during a phone call unless the endpoints send keepalive packets often enough.
TLS will prevent the router helping with SIP ALG - you must have endpoints capable of doing NAT traversal themselves (STUN). Though that's a good idea in all cases anyway.
I wonder if FS could multiplex SIP and RTP over the same port someday?
Maybe support deflate encoding?
That wouldn't automatically work. It would need support by both ends and protocol changes to support it.