Bill, precise fine-grain compatibility specs would be excellent on a technical level, but would they also work well on a human level?
A scenario that concerns me looks something like this:
1: User A writes code to interface some sensor to Arduino Uno.
2: Forum users B, C, & D request the code, so he packages it into a library and uses a library.properties for Uno. User A posts the code to a forum topic.
3: Leonardo users can't use the library, even though it would work, only because library.properties is too narrowly specific.
4: User C with a Leonardo adds the specs for Leonardo, posts an updated copy later on the same forum topic.
5: User B has an Arduino Yun, which could run the library, except user C only owns a Leonardo board, and didn't add/test support for Yun.
6: Several months later, Arduino Tre is released. The library could run on Tre, but can't, only because the spec is again too narrow.
7: Later, someone wants to run it on Teensy 2.0. I make a modification for Teensy 2.0 and publish a copy in my Teensyduino installer.
8: Yet more users want to run the library on Arduino Micro, Sparkfun's clones, or other derivitives. Maybe they find the original Uno-only code, or the 2nd port, or perhaps my version.
I could go on and on with this list.....
However, my biggest concern is how code gets ported and adapted to different boards. Real users simply try using a library on an unsupported board. They get errors and ask for help on the forum. Hopefully they post the actual error messages. The "copy error" button in 1.5.X is intended to gently guide users to post actual errors. Expert forum users see the error and suggest fixes. Sometimes the original author updates their library. Sometimes abandoned libraries get picked up by others (really, I believe the most beautiful thing about open source).
My point is the "just try it and see what happens" approach, messy and error-prone, is a pretty important mechanism by which the Arduino community collaborates. Many people who know a lot more about human interaction than me have written about the importance of empowering people to try things and accept/learn from setbacks and failures.
Yes, some libraries (notably ones you've written) are done with an expert approach, where one developer pours tremendous effort into cross-platform compatibility and verification. But most libraries aren't developed that way.
An air-tight system that prevents users from trying to compile code on specific boards the author or maintainer hasn't certified as compatible might spare users from compile errors, but it might also have a pretty negative overall impact on community collaboration and sharing.