1) Honestly, it depends. The answer is very dependent on whatever statutory requirements and/or personal reporting preferences you have.
Yes, if it is subject to capital gains, you would want to track your cost basis. Capital gains occur when you purchase an asset and later sell the asset for more than what you purchased it for, so you need a cost basis to be able to calculate that.
You could optionally track cost basis for things that aren't subject to capital gains if you just wish to know how much you stand to gain from exchange/conversion differences - e.g., you're an American currently living in Europe and are curious to know how much you would gain if you decided to liquidate all your EUR assets into USD and move back to USA.
In finance, these differences would be referred to as statutory reporting vs. management reporting.
Continuing with the American expat living in Europe example, Americans' worldwide income is subject to tax by the IRS. Under IRS guidelines, you would want to track your FX amounts at their historical USD amounts - i.e., using the exchange rate from the date of the transaction. So, let's say you're an expat living in Spain and you get paid 1,000 EUR weekly, the USD amount you would report to the IRS would vary slightly for each week based on the prevailing exchange rate. You would not report USD amounts by summing your EUR and converting using the latest exchange rate. For this requirement, you could track your EUR's cost basis in USD and simply report at cost - not market value.
2) I can't point to where in Fava's source how this is calculated exactly, but it'd simply be the number of units (EUR) multiplied by the latest price - this is the total current market value of your holding/position - less the total cost basis of the holding. If you have more than one lot for your position, then the cost basis per unit will vary by lot.
You can get a breakdown by account in the balance sheet view by looking at your assets and liabilities. The unrealized account under equity is simply the sum of those amounts.
If you want a more detailed breakdown, you can explore the holdings page - see example below. Your unrealized amount would be market value less the book value (cost).
If you look at the query, it will show how it's calculating everything.
SELECT account,
units(sum(position)) as units,
cost_number as cost,
first(getprice(currency, cost_currency)) as price,
cost(sum(position)) as book_value,
value(sum(position)) as market_value,
cost_date as acquisition_date
WHERE account_sortkey(account) ~ "^[01]"
GROUP BY account, cost_date, currency, cost_currency, cost_number, account_sortkey(account)
ORDER BY account_sortkey(account), currency, cost_date
3) Yes, go to help >>> filtering entries.
Your reporting issues are happening because you've changed your operating currency to EUR from USD in your previous example.
This doesn't make sense to me from an abstract finance perspective and seems to be why you're getting funky results. If your operating currency is EUR, then you would be tracking cost basis in EUR, not USD.
I don't have a use for multiple operating currencies, but it seems like others do, so you might want to explore using both EUR and USD.