M,
As you suggested if you are doing systematic testing then you should go back at every cycle to where you started. In that case rebooting ASE (not just for cache) is expected. However, if that is not possible you can do one of the following:
a) You create a very large table, a table larger than the cache, and force a cache pool size and prefetch/replacement policy and then flush with this table.
For example)
SELECT COUNT(*) FROM TABLE (INDEX 0 PREFETCH 2 LRU)
b) Bind to a different cache and back.
If you can get isolation, you could also create a very small cache and bind the database to that cache (The process of binding an object/database to a different cache flushes the pages out of its current cache). Afterwards, bind the database/objects back to the original cache.
c) You can change the cache pool sizes. Just create a 16K cache and move away almost everything from 2K pool and put it back. In new versions oif ASE (12.5), this is dynamic.
sp_poolconfig 'default data cache', '1000M', '16K'
go
Hope this helps