1. Buy BTC and ETH on CB with USD, hold them.
2. Months later, buy BTC/ETH, transfer to another exchange (Bittrex/Binance) and immediately buy an altcoin and hold.
So (1) isn't a taxable event because I never sold them (unless I'm forced to use FIFO reporting, then it gets murky - but my lots are very clear/specific).
FIFO reporting only applies when you've commingled tranches. As long as they stay separate, then FIFO can't apply.
Scenario: Buy crypto on CB, transfer to a hardware wallet. Later, buy more crypto on CB and transfer to buy alts. The two buys didn't mix, so no FIFO.
Another scenario: Buy crypto on CB and leave it on CB. Later, buy more crypto on CB and transfer that quantity to buy alts. The two purchases mixed, so now you have to use FIFO, LIFO, or whatever else is required.
Yet another scenario: Buy crypto on CB and transfer to a hardware wallet. Later, buy more crypto on CB and again transfer to the same hardware wallet. Unless you intentionally joined the transactions, the two tranches remain identifiable*, even if you used the same address. Thus no FIFO. (* Someone using a blockchain explorer can see the funds move independently.)