Can applications simply use unassigned characters as they wish?
No! No conformant Unicode implementation can use the unencoded values outside of the private use area. Only the values in the private use areas (E000..F8FF, F0000..FFFFD, and 100000..10FFFD) are legal for private assignment. However, this is over 137,000 code points, which should be more than ample for the vast majority of implementations. [F0000..FFFFD and 100000..10FFFD are represented by surrogate pairs with private-use high surrogates (DB80..DBFF).
No! No conformant Unicode implementation can use the un-encoded values outside of the private use area. Only the values in the private use areas (E000..F8FF, F0000..FFFFD, and 100000..10FFFD) are legal for private assignment. However, this is over 137,000 code points, which should be more than ample for the vast majority of implementations.