This sounds like a great idea, but I think if there was to be an actual system it should be a mix of 2 things:

- Automatic recommendation. This should be for all the common cases you described. But this will leave quite a number of false positives/false negatives. Not to mention a lot of people will probably not even bother reading the warning message.
- Flag that could be at the same level as other flags, where users would be able to tell that this looks suspiciously like a solved answer, and a mod could take action.

The reasons for the mix of these 2 is that, after browsing a bit in the search, there seems to be a great diversity and creativity in the way people mark something as solved, and an efficient system would need to find a good compromise between false negatives and false positives. If we just add a warning, I get the feeling that a lot of people will keep doing it, there needs to be a way to take action if we really want to go that way.

**False negatives**: There is still a certain number of posts who would be non-detected by a script but easily by humans (assuming we want to avoid too many false positives). Some examples of posts who would be hard to catch:

- [SOLVED at the end, no delimiter][1]
- [solved but still puzzled][2]
- [SOLVED at the beginning, no delimiter][3]
- [Actual sentence could make sense if you don't look at the upper case][4]
- [solved myself][5]
- [commas can be used for anything][6]
- [SOVLED and not SOLVED][7]
- [What about a C++ class called Solved?][8]

**False positives**: 

- [Typo and a separator, but actually just a class name][9]
- [solved after a comma and before a question mark][10]
- [not solved !][11]

In summary, I think the automatic system should be **very basic** otherwise this will end of flagging too much stuff, you'd need to do some kind of AI to have a reasonable algorithm and I don't think it's worth the effort. People will do a much better job at flagging those. But overall that's a pretty minor issue if you look at the number of "*solved*" posts, and a lot of headache for not that much impact.


 [1]: https://stackoverflow.com/questions/1525400/multiple-join-or-subquery-query-optimization-solved
 [2]: https://stackoverflow.com/questions/2585712/python-memory-leak-solved-but-still-puzzled
 [3]: https://stackoverflow.com/questions/4749166/solved-sending-variable-to-function-to-execute-odbc-select
 [4]: https://stackoverflow.com/questions/6352075/java-recursive-distance-math-problem-solved
 [5]: https://stackoverflow.com/questions/7347077/ext-store-is-not-loading-data-correctly-edit-solved-myself
 [6]: https://stackoverflow.com/questions/1126863/resolving-sub-domain-in-apache-ignore-solved
 [7]: https://stackoverflow.com/questions/9802113/sovled-regex-if-is-not-found-at-the-end-then-replace-everything
 [8]: https://stackoverflow.com/questions/2630967/solvedmessagequeue-beginreceive-null-ref-error-c-sharp
 [9]: https://stackoverflow.com/questions/8218906/java-can-not-cast-from-string-to-integer-sovled
 [10]: https://stackoverflow.com/questions/8134694/very-specific-query-it-can-be-solved
 [11]: https://stackoverflow.com/questions/6552691/last-item-click-null-pointer-excepction-not-solved