Hello Sprout,
The two routes cover all network segments. Therefore, the two static routes can replace the default route.
0.0.0.0/1 0.0.0.1~127.255.255.254
128.0.0.0/1 128.0.0.0~255.255.255.254
Here's an experiment.
[A-PE1]disp ip routing-table 88.88.88.88
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table: Public
Summary Count: 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/1 Static 60 0 RD 12.1.1.2 GigabitEthernet
0/0/0
[A-PE1]disp ip routing-table 222.222.222.222
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table: Public
Summary Count: 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
128.0.0.0/1 Static 60 0 RD 12.1.1.2 GigabitEthernet
0/0/0
[A-PE1]ping 88.88.88.88
PING 88.88.88.88: 56 data bytes, press CTRL_C to break
Reply from 88.88.88.88: bytes=56 Sequence=1 ttl=255 time=50 ms
Reply from 88.88.88.88: bytes=56 Sequence=2 ttl=255 time=30 ms
Reply from 88.88.88.88: bytes=56 Sequence=3 ttl=255 time=10 ms
Reply from 88.88.88.88: bytes=56 Sequence=4 ttl=255 time=40 ms
Reply from 88.88.88.88: bytes=56 Sequence=5 ttl=255 time=50 ms
--- 88.88.88.88 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 10/36/50 ms
[A-PE1]ping 222.222.222.222
PING 222.222.222.222: 56 data bytes, press CTRL_C to break
Reply from 222.222.222.222: bytes=56 Sequence=1 ttl=255 time=60 ms
Reply from 222.222.222.222: bytes=56 Sequence=2 ttl=255 time=30 ms
Reply from 222.222.222.222: bytes=56 Sequence=3 ttl=255 time=20 ms
Reply from 222.222.222.222: bytes=56 Sequence=4 ttl=255 time=30 ms
Reply from 222.222.222.222: bytes=56 Sequence=5 ttl=255 time=50 ms
--- 222.222.222.222 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/38/60 ms