Actually the reason this query can run
SELECT job_id, po_date FROM pos WHERE po_date < '1990-01-03' GROUP BY job_id;
is Because sqlite have "bare columns" implementation in aggregation query
https://www.sqlite.org/draft/lang_select.html#bare_columns_in_an_aggregate_query
In short, sqlite will fill our bare column (po_date) with value from one of the rows in the group, but which row's value is used is unpredictable and can vary.
Sqlite3 itself is not as strict as other popular sql languages.
So I don't think you can do that "bare column" to any other sql services like PostgreSQL or MS SQL Server.
At least I am sure you cannot do that in PostgreSQL, not sure about the other though. You can do your own research for it!