The bidirectional algorithm depends on a partition property. Every code point that participates in the algorithm has to have *some* value of that partition for the algorithm to be well-defined for all encoded characters -- and that includes PUA characters, which are encoded characters. The UTC could have chosen bc=ON or bc=BN or bc=R or something completely stupid like bc=PDF instead of bc=L as the default property for PUA characters, but "None of the Above" was not an option. Based on their implementation experience with use of PUA characters, bc=L made the most sense and was the choice made by the UTC for the default.
OK, but let's go back to Tengwar. What will give me a better result? Using PUA encoding for Tengwar, with its spacing letters, nonspacing diacritics, and RTL numbers, or putting Tengwar glyphs on defined Unicode characters which have properties that approximate what the Tengwar needs?
My guess is the latter, unless PUA *properties* can be opened up as changeable by the user.
--
Michael Everson * * Everson Typography * * http://www.evertype.com