To expand on Andrew's answer a little, many application that interact with the Bitcoin network include some kind of "sane defaults". For Bitcoin Core, this is visible in the form of not allowing very high fee transactions, ensuring there aren't any duplicate addresses in outputs, attempting to use change addresses of the same type as the address you are sending coins to in an attempt to preserve privacy, and so on.
In many of these cases, these rules are different from the actual Bitcoin Protocol - For example, although Bitcoin Core tries to prevent absurdly high fees, there have been numerous cases of very high fee transactions (paying several BTC in fees) being mined.
Similarly, although the protocol allows multiple outputs to a single address, Bitcoin Core attempts to prevent that at an RPC level to reduce user error unintentionally costing them money. The Bitcoin Protocol itself has no rules against this, and will let you make such a transaction, and mine it, without any complaints.