You raise some good questions here, being a custom JSP zealot I will offer my perspective on a couple of your points.
1. both separate content from format. This is a Good Thing!
<adam>I fully agree</adam>
2. both have the ability to create almost unreadable HTML/XSL files. Bad bad bad.
<adam>I fully agree that XSL/XSLT files can and often are very unreadable, but I think well designed tags in HTML are typically very readable, especially to HTML folks who are used to tags and attributes.</adam>
3. both cause significant additional work on the part of the developer. I personally find custom JSP quite complex, even if you use a pre-built framework like Struts.
<adam>I would agree that the actual API for tags could be simpler, but it is improving. The resulting tag, if designed well, should be easy for the content developer though</adam>
4. both need additional processing power.
<adam>Not sure exactly what you mean by this, but if you mean that a standard web server needs to exert additional effort to server either, that is true. However, this is more a matter of how you partition the processing. If your web/appserver supports JSP you can simply view this as part of the processing power of the web server</adam>
Author of :JSP Tag Library