Ok, I guess here is a solution which
- handles unsorted dates
- returns maximum and minimum values
- is gnuplot-only (no external tools)
A little drawback: I don't know how to prevent warnings from 'stats'.
### start code
reset session
# unsorted dates and values
$Data <<EOD
#dateYMD sum
2014-02-01 85
2014-02-09 134
2014-02-01 95
2014-02-02 116
2014-02-01 70
2014-02-02 123
2014-02-09 130
2014-02-11 145
EOD
# get unique dates in seconds
set xdata time
set format x "%s"
set table $DataInSeconds
plot $Data u (timecolumn(1,"%Y-%m-%d")):2 smooth freq
unset table
set xdata # stats will not work with 'xdata time'
stats $DataInSeconds nooutput
UniqueDates = STATS_records
# get the maximum and minimum value per date
set print $MinMaxData
set table $Dummy
do for [i=0:UniqueDates-1] {
plot $DataInSeconds u (a=$1,$1):2 every ::i::i with table
stats [a:a] $Data u (timecolumn(1,"%Y-%m-%d")):2 nooutput
print sprintf("%s\t%g\t%g", strftime("%Y-%m-%d",a), STATS_min_y, STATS_max_y)
}
unset table
set print
print $MinMaxData
# plot the results
set key top left
set yrange[0:160]
set xdata time
set format x "%m/%d"
plot $MinMaxData u (timecolumn(1,"%Y-%m-%d")):3 \
w lp lw 2 pt 7 ps 2 lc rgb "red" t "maximum values",\
'' u (timecolumn(1,"%Y-%m-%d")):2 \
w lp lw 2 pt 6 ps 2 lc rgb "web-green" t "minimum values",\
$Data u (timecolumn(1,"%Y-%m-%d")):2 \
w p lw 2 pt 2 ps 1 lc rgb "blue" t "all values"
### end code
will result in:

awk '{if (date && date != $1) {print date, val}; date = $1; val=$2}'. This will leave only last value for each date.