It doesn't index the XML because it also doesn't provide any comparison methods for XML. Largely because string comparisons on XML tend to be less than useful, I think.
Although you can't index xml columns directly, you can define functional indexes over them. As long as you are careful to use the same function in your where clauses the index can be used.
Here's an example taken from Nikolay Samokhvalov's XML Support in PostgreSQL paper[1].
CREATE INDEX i_table1_xdata ON table1
USING btree( xpath_array(xdata, '//person/@name') );
Here's an example taken from Nikolay Samokhvalov's XML Support in PostgreSQL paper[1].
[1] - http://www.pgcon.org/2007/schedule/attachments/16-xml_in_pos...