Currently, we do not support mixing dynamic partitioning and append in the same job. One reason is that we need exhaustive testing of corner cases for that, and a second reason is the behaviour of add_partitions. To support dynamic partitioning with append, we'd have to have a add_partitions_if_not_exist call, rather than an add_partitions call.
Thus, the current implementation in
HIVE-6475 assumes immutability for all dynamic partitioning jobs, irrespective of whether or not the table is marked as mutable or not.