I'd thought of something like this a long time ago. My thought was, for the 'S15' problem, you could have a script where you could click on content to 'mark' it. (Giving it -2 to attack anyone else) Then you could click a 'download marked content' button, which would:
a)Compile all your marked content.
b)Produce your S15.
Basically, each book's S15 would be entered into a DB, then each feat, skill, power, PrC, whatever would have a 'Source' tag. The S15 from all sources in the 'shopping cart' would be examined, merged, and a 'new' S15 would be produced.
Ideally, the best thing would be to break each S15 into sources.
Table a: A source and an identifier. Each entry would be unique.
Table b: A book name and an identifier. Each entry would be unique.
Table c: The joining table, with column 'a' being a Book ID and column 'b' being a Source ID.
"Select a.book_name, b.source_text from Books a, Sources b, S15 c where c.book_id=a.book_id and c.source_id=b.source_id".