You lost me at "nice, elegant language like Java". ;) Just kidding, this seems like a nice survey of things to keep in mind. I liked the reminder in the IR section that an IR didn't necessarily have to be "closer" to the output language in an obvious way. I generally like this level of abstraction and detail, and I wish more writing took this approach.