Apparantly the default option for parsing a date (in Java) is to be lenient, but you can set it to be more strict with setLenient(false), here is a small code example for a Java action with a more strict date parsing. It should take two parameters, the dateFormat as a string (for example: MM/dd/yyyy) and the date as a string (for example: 25/25/2011) and it should return a date.
SimpleDateFormat smf = new SimpleDateFormat(dateFormat);
smf.setLenient(false);
return smf.parse(dateString);
You also need to add this import:
import java.text.SimpleDateFormat;
It will throw an exception when trying to parse an invalid date (such as the one in the example)
Since you're parsing a string in this subflow you could use the substring function on the month substring($Parameter_String,0,2)which you parse to integer and verify it is less than or equal to 12. It's another step but you could verify each aspect of the string before parsing DateTime.
Looks like a bug to me, this doesn't make sense.