En cuanto a los flotantes, no es un problema de Python sino de la implementación de aritmética de punto flotante estándar (
http://es.wikipedia.org/wiki/IEEE_punto_flotante)
print abs(round(-34.2765,1))
devuelve "34.3", mientras que la salida que obtienes es producto de escribir
abs(round(-34.2765,1))
en el intérprete interactivo (la consola de python)
En cuanto a *=, es cierto que hay algunos lenguajes en los que la asignación es una operación que devuelve el resultado asignado, pero dudo que haya alguno en el que una asignación como la que escribes funcione como lo pretendes.
Saludos.