The question title should stand on its own without the tags.
Really, any question can be boiled down to tags. What is left for the title then (examples near the bottom)? Why bother having the title at all? If anything, take the tag out of the HTML title.
As far as I'm concerned, the tags should primarily be for following and searching. At the very least, putting specifics that should also be tags into the title is necessary for knowing what the question is actually about in places where the tags aren't specified, like the "Related" column on the side of the question page, and especially in the "Questions with similar titles" box when you're asking a question. And let's not forget search engines. It's not just SEO; assuming I found a result in a search engine, but it didn't have the language or relevant specifics, the title doesn't tell me whether answers are likely to answer my question. If one is asking about how to use some feature in, e.g. Haskell, and a bunch of questions with similar titles (because all the specifics are tags) pop up but they're all in Java or C, or even Ruby or Scheme, why bother having the suggestions?
The particular version of the language should, however, not be in the title unless the question is specific to that version, for instance a language feature introduced then.
Let's take those titles you pointed out:
- Generate a list of strings with a sliding window using itertools, yield, and iter() in Python 2.7.1?
Possible tags: [generate] [list] [string] [sliding-window] [itertools] [yield] [iter] [python]
Remaining non-tag ideas: nothing.
Obviously this is too many tags to tag the question with all of them, but which should I include in the title? How do you justify putting any of them in the title if you don't want tags in the title?
- Function not writing to .xls correctly . Python 2.7.1
Tags: [function] [file-io] [xls] [python]
This one is fully taggable. Why bother having a title at all?
- File Open Function with Try & Except Python 2.7.1
Tags: [function] [file-io] [exception-handling] [python]
What's there to distinguish this from the previous question? Especially if the problem with the previous is that it's throwing an exception, perhaps it should be tagged with [exception] too.