I was thinking more about the subject, and extended attributes. Here is an alternative proposal to implement extended attributes:
(1) Everything stays the same as it is (Plan 9 or old-Unix) except: (2) An attempt to read(2) or write(2) a directory will succeed if and only if there is a .data entry, in which case it will access contents of the .data object. None of the existing tools need to be changed. To add attributes (all done in user space): (a) Move the current file (terminal node) to a temp name. (b) Make a directory in its place, with the original name. (c) Move the temp name to original_name/.data . (d) Create a file (subdirectory?) .attributes . (e) Populate the .attributes .
