This is a really interesting problem, which I haven't seen before. These relationships can be fairly easily read from a table in a database, but those lines become blurred when you're using views. Your views are super-simple--they just pull data directly from the table, but what if the view were more complex, containing multiple tables, joins, sub-queries, etc.? In such a case, Tableau would have to read the schema of all the underlying tables as well as whatever logic was built into the SQL in order to understand the relationships. So, while I'm not 100% sure, my guess is that Tableau can't really do all this extra work to determine the relationships and reverts to making a best guess.
Following up on this one. Let us know how we can help further.