1) including current day might increase data as soon as it is processed
2) depending on segments there might be visits/visitors within condition later (especially if you create a segment at visitor level)
3) for performance reasons there is a "reporting window" running in the background which is used for faster data fetching. it might be that there has been some issues because first fetched segments on a longer timeframe and later filtered based on date range. therefore some segments might have met the longer date range (in reporting window) later on...
when you use custom date ranges in your tables (eg "Before 5.0") it will always override the date range of the project. so whatever date range you select for your project, the table (with custom date range) will stay the same!