Typologically, the rule which forbids this is agreement. However, German doesn't have strictly obligatory agreement, so dative singular masculine nouns for example carry no case ending. On the other end of the extreme, analytical languages get away without case ending and it still somehow works.
On a sentence level, the two datives are not on the same level of the syntax tree:
Sie hat ihm [einen Brief (aus dem Urlaub)] geschrieben.
That's an accusative object with a dative argument.
Two datives don't seem to possible in such a configuration (I think).
It may be questionable how relevant this is. One could alternatively parse aus dem Urlaub as a separable prefix to the verb, like a prepositional adverb, quite analytical.
She wrote to him from England
NB: cp. Old High German fram, Lat. primus “Zu-
grunde liegt eine Ableitung mit dem u. a. Super-
lative bildenden Suffix *-mó- von der uridg.
Präp. *pro ‚vor‘”; subtext: “Im Aind. werden mittels des betonten Suffixes *-mó- Adjektive von Lokaladverbien in superlativischer Be-
deutung abgeleitet;" (EWA: fram).
It is probably not either dative or locative in origin. If it looks like dative, stems of different gender/number follow suit, this may be analogy.
The opposition of prepositions is usually:
ins Haus, aus'em Haus,
im Haus, außer Haus
The reconstruction of Anatolian, a distantly related branch of Indo-European languages, serves for comparison:
Hitt. and CLuw. andan are connected with Greek ἔνδον ‘in, at home’ and reconstructed as a Proto-Indo-European univerbation of *en dom ‘at home’ (cf. HEG A-K:33, HED A:76f., EDHIL:185 “*h1ndom”, LIPP II:159, Brosch 2014a:364-366).
(Dr. David Sasseville in: The Digital Philological-Etymological Dictionary of the Minor Anatolian Corpus Languages (eDiAna) https://www.ediana.gwi.uni-muenchen.de/dictionary.php?lemma=3443#31 (accessed 2023))
*dom- is the reconstructed stem of dome (Latin dom-us), related to the root of timber and German Zimmermann (“carpenter”).
Corollary: We have to assume that aus'm is correct with /s/ reflecting the sound change s, z, ß < *t < *d (cp. Füße, Latin pedes "feet", ß "ess-zett" a ligature of sz in older spelling). The articles of aus dem, in das, in dem represent a kind of hypercorrection since the proto-language has no articles.
Caution: The regular reconstruction of the preposition is *ut < *ud and there is no extra evidence of **udom that I'm aware of.
The reconstructed Proto-Indo-European root *dem- "to build" is not clearly related to the locative ending, cp. Lat. loc. domī ~ domibus, equivalently English outa, out of (note affricated b > English v, cf. Ger. Liebe "love"), Lithuanian *namè ~ namuosè and Sanskrit dáme ~ dámayoḥ ~ dámeṣu likely representing the original situation (Wiktionary: PIE *dṓm). In particular, is not related to *de "to", cp. into (and Ger. ins, I say).
This theory is woefully incomplete. The main takeaway is that the reconstruction follows from the modern grammar of multiple languages, which is biased by a select few earlier attested, inherited languages, which wildly disagree.
Urlaub is not a place anyway. Derived from erlauben, the etymology is opaque (cp. allow, not leave "vaccation"). As for er-, the rhotic may be due to rhotacism from *s (cf. ich war "I was"). This is the case of where, from *hwaz < *kʷos, *kʷis (Wiktionary: PG *hwar). Hence the correlative question "Woher?" (cp. hin und her "to and fro", hier und da, "mit lokalem r-Suffix gebildet", DWDS/Pfeifet)
This implies, ironically, that ur- is in this case a reflection of aus "out" as in Auslauf (“Möglichkeit sich im freien zu bewegen, spielen, ..." DWDS, probably a narrowed sense of exercise, run, run-out, cf. Collins), cp. Old Frisian ur "out", and potentially related to Hittite u- "go", PIE *h2ew- "out"; difficult to say. -s might be locative (Adams 2014: Tocharian B “nes”; Hackstein 2023 s.v. “s-mobile”, r-Suffix, Pfeifer above).