Is txindex=1 necessary in the latest versions? A few months back when I wanted to use getrawtransaction API call on any txid other than my bitcoin core wallet it would return an error. The error was resolved by adding txindex=1 to the conf file and restarting the daemon with -reindex option. 
Now while teaching the concepts to a colleague, I was hoping they would search for the solution when they faced a similar error and would update the conf file. However, the API called returned with the transaction details for any txid and there was no bitcoin.conf file created.

Has the implementation changed which I am not aware about?
getrawtransaction's behaviour has not changed since Bitcoin Core 0.8 (up until at least 0.14).

It will always work:


For mempool (unconfirmed) transactions
For confirmed transactions that have unspent outputs left.


So, -txindex=1 is only needed in order to query for confirmed transactions of which all the outputs are spent. It also speeds up querying for confirmed transactions in general.