Is introducing a where condition into the join clause bad practice
Putting a condition in the WHERE clause and the ON clause are two very different things.  The ON clause is part of the JOIN.  Now with an INNER JOIN you won't see any difference in the output (unless also using GROUP BY ALL).  But an OUTER JOIN is a different story.  If you moved that particular condition into the WHERE clause it would (among other things), in effect, negate the OUTER portion of your query.

I wrote an article with several examples here.

Just remember that the ON clause joins the two tables together.  The WHERE clause excludes rows from the output.  For your specific example lets say you have a row in TB_REQUEST_DATA without a match in TB_SPOT_REPORT_REQUEST.  With r.master_seq=206 in the ON clause of the  OUTER JOIN you will get a row returned with the value of TB_REQUEST_DATA but NULLs in the TB_SPOT_REPORT_REQUEST columns.  If on the other hand you put it in the WHERE clause it's going to eliminate the row entirely.

Let's say however that you want every row of TB_REQUEST_DATA but only the information in TB_SPOT_REPORT_REQUEST where master_seq = 206 AND SEQ = REQUEST_SEQ.  That's when you would put the condition in to the ON clause.