Currently, our dateformat is only 'strict' with the rfc3339 format. ISO dates may optionally contain a time portion, but that time portion is incompatible with refc3339 formatted dates. We should add a dateonly option to dt_from_string so we can explicitly fail if an iso date string is passed with a time element that we should drop due to a failed match.
Bug 29403 improves the situation regards date strings with unexpected data prepended/appended.. but it doesn't strictly prevent a valid datetime being accepted when only a date was expected.