I looked a little bit further into this and I am still not sure what the root cause is, i.e.
-
whether the Fritz!box is simply not pushing changes of the prefix downstream, or
-
whether the OpenWrt box is not processing such information whereas at startup of odhcp6c the prefix information is somehow pulled.
However, I am pretty sure no communication between the boxes is filtered.
I also looked into the source code of odhcp6c, but couldn't spot any related issues. (Though I spotted some obvious memory leaks related to calls of realloc() and putenv(), which are presumably just accepted as changes in the environment shouldn't occur to often. Apart from some general reservation against memory leaks I don't think those really matter.).
In the meantime SergeantNukem's workaround turned out to be a viable option (thanks for posting that). Here is a slightly enhanced version of his hotplug script (as pulling down/bringing up the interface is only necessary when ip addresses are updated instead of at any 'ifupdate'.
/etc/hotplug.d/iface/99-ipv6_fix_prefix_delegation:
__INTERFACE__="wan6"
__DEBUG__="FALSE"
if [ "$__DEBUG__" == "TRUE" ]
then
date >> /tmp/debug-hotplug-iface.log
env >> /tmp/debug-hotplug-iface.log
fi
if [ "$INTERFACE" = "$__INTERFACE__" -a "$IFUPDATE_ADDRESSES" = "1" ]
then
/usr/bin/logger -p user.notice -t \
hotplug "address change detected, resetting interface WAN6..."
/sbin/ifup WAN6 # ifup implies ifdown
fi