Ever since charts were introduced in CRM 2011, there has been a limit of 50,000 records that could be aggregated via a chart. This limitation is there for performance reasons, and has been a reason why some users with large data sets have stayed away from using charts.
CRM 2015 introduces rollup fields, which automatically roll up child record data to a field on the parent record. This presents a solution to get around the 50,000 record limit (and make charts with fewer than 50,000 record render more quickly): Create a rollup field on a parent record, then chart the rollup field values.
That has also been a good reason to use goals in the past – you are rendering a chart of a small number of previously calculated records rather than the large number of records in the original dataset. The big difference is that to use goals for lots of records like Accounts means creating lots of goal records (automatically of course). However I would still use goals if the “parent” entity is system User – you don’t want to update the user record with calculated rollups because that invalidates their security privileges cache on the Web servers, causing it to be rebuilt far more often than necessary.