(select * from テーブル名 where (検索条件) and dateが3日以内 ) と (select * from テーブル名 where (検索条件) をくっつけるってことは、distinctかけるか"(検索条件)and dateが3日以上前" にしないと重複行がでるような。。
あと、"くっつけた後"のレコードに対してorder by date desc , point desc;してるんだから、 この時点で3日以内のレコードが一番上とか関係ないし。
(select * from テーブル名 where (検索条件) and dateが3日以内 ) という結果と (select * from テーブル名 where (検索条件) and dateが3日以上前 order by date desc , point desc); という結果をUNIONしないとだめっぽ。