The FreeBSD AMI on AWS does not provide the same level of support for user_data scripts as other AMIs. As you pointed out, it does not support `#cloud-boothook` user_data and ignores any user_data passed after boot.
A simple solution is the following:
sed -i '' '/KEYWORD: *firstboot$/d' /usr/local/etc/rc.d/ec2_configinit
This is a hack -- your instance will now execute all user_data scripts, even those without the `#cloud-boothook` tag, but in my opinion it is much better than the default behavior of the script. Note that one can always disable the `ec2_configinit` script altogether by turning it off in `/etc/rc.conf`.