HTML requires that the <script> must be closed with </script>. In HTML, <script /> always has meant an opening <script> tag with the attribute /; with unknown attribute names ignored. Entities are not parsed within an embedded script in HTML mode, and the script ends at the earliest occurrence of </script string, or sometimes at </, depending on the browser.
The only exception to these rules was the XHTML parsed in XML mode - there self-closing script tags would have worked; but since this really never worked in all the browsers anyway (that is, XHTML), and XHTML served with Content-Type: text/html means that it should parsed using HTML rules, you shouldn't use it even in "XHTML".
To clarify, Serving HTML & XHTML says the following:
To send XHTML markup to a browser with a MIME type that says that it
is XML, you need to use one of the following MIME types:
application/xhtml+xml, application/xml or text/xml. The W3C recommends
that you serve XHTML as XML using only the first of these MIME types –
ie. application/xhtml+xml.
When a browser reads XML it uses an XML parser, not an HTML parser.
Unfortunately, up to and including version 8, Internet Explorer
doesn't support files served as XML, although a number of other
browsers do. To get around the fact that not all browsers support
content served as XML, many XHTML files are actually served using the
text/html MIME type. In this case, the user agent will read the file
as if it were HTML, and use the HTML parser.
Since the browser considers the XML to actually be HTML, you need to
take into account some of the differences between the two formats when
writing your XHTML code, to ensure that the differences between XML
and HTML syntax do not trip up the browser. This includes different
ways of declaring the character encoding or language declarations
inside the document.
Thus, to account for differences in browsers, you must close your script tags explicitly if you want your files to be able to be processed using HTML parsers; this is expectation for many, if served with text/html content type.
<script>has always been a good idea, even in the xhtml days, no matter how ugly it looks.